# IMAGE_MUSIC (Michel BRET 2016)

# english français

## Download <-

Some links will not be active if there is no internet connection.

## Principle
Device
The menus
Keyboard Shortcuts
Launching options
Example

## Principle

This application follows gravity2.0 (2016) with mouse sensor and the same properties.
Just click on DEMO.js
a scale on the left of the screen allows modulate the sound.
Bodies are set over a ground, they act according to a gravity field and forces determined by the collision algorithme (impact on the ground).
Each body is associated to a neural network. whose inputs are the angles of its limbs and whose outputs are torques applied to those limbs. Such a network is dynamically trained by the back-propagation algorithm of the error, from a predifened set of learning couples (input,output), the outputs aiming to preserve the balance in a dancing way.
An interactive process provides additional forces from a dynamic analysis of various sensors (such as audio fft).
A feature activated by g key (or click on gravity) satellites a bodie which distance to the hearth is greater than a threshold, press again g key restarts gravity.
Press G key satellites a bodie whose distance to the hearth is greater than a threshold, gravity is automatically restarted if the sound is low during 2 seconds or by pressing g key (or click on no gravity).
This feature is an option value when runing gravity_aud_3.js (audio) or gravity_mou_3.js (mouse).
Option is an automatic process.
A feature activated by D key made bodies interact (dance).
Mode auto gravity
In interactive mode with audio active and G active, auto gravity (if gravity is active) or no gravity (if gravity is not active: satellisation) and, in mode audio, a little scale allows changing the sensor coefficient in order to quickly adjust the sensitivity of the audio captation. When launching the programme an automatic surch determines the minimum value of the audio (so launche the programme in silence).
Mode gravity +
In gra mode when clicking on + or pressing + key a force is applied to bodies in order to liberate them from the earth gravity puting them on trajectories around the sun and fginaly out the galaxy, they travel from now on others galaxies. In plus mode when clicking on = or pressing = key a force is applied to bodies in order to put them in others universes.
WARNING:
files gravity_aud[1,4].js contain option poi, must prese . key (point) in order to liberate the bodies from the earth attraction.

# Device

PC (4GHz, 16Go), system Windows, graphic carde (recent Nvidia).
speakers
table supporting the mouse
video projector or big screen
Just click on DEMO.js
drag vertically the mouse.

## The menus

### MAIN
NETWORK
PARAM
SENSOR

## MAIN

### HEL: help
DOC: this file
MODEL
BAL
ACT
AUTO
INI
EFF
MUSIC
EXI

MODEL
Click on nb: number of bodies, on displ: active bodies.

### BAL

Enable / disable an automatic balancing process.

### ACT

Launches the whole porcess.

### AUTO

Automatic mode, must been activated a sensor.

### INI

Resets all bodies.

### EFF

Automatic variation of effects (with or without texturing, selfing, ...).

### MUSIC

Click on name.js; plays music file namle.eee.
Menus are hidden, click in the frame in order to hide the player, press ENTER key then ; key for a mini control (adjust the amplitude of the signal with keys ( and )).

### EXI

Exit.

## Parameters menu

### HEL: help
CHANGE
OUT
READ
WRITE

### CHANGE

HEL: help
INI: reset
SCALES: displays scales allowing to change parameters:
gravity
reb: rebound
fric: friction
force: force of collision
coe: transmission
visc: viscosity
force add: vertical force
coe gravity: gravity coefficient
ni: trajectory duration
period: display rate
limit: limit for take off
aim: size of the aim buffer
self: amplitude of the auto mapping
agitate: default agitation
plus: coefficient when in plus mode
gravity
testure size
wind: window of the auto mapping
ang: angle
balance,visc: balance coefficient
SKIN: switches body/skin mode
ILLUM: yes/no illum
EXT: switches body/skin mode
ROTY: yes/no roty of ground and sky
PART: yes/no particle
INI: reset
READ
reads parameters from file PARAM
WRITE
writes current parameters in file PARAM

### OUT

HEL: help
RING
WAV
RECORD
SYNTH
PLAY
TEST

## Keyboard Shortcuts

: (colon) hides menus.
a: automatic aim.
A: automatic balance of audio amplitude (keep silence during the process)..
b: restarting with Option (begin).
C: automatic change of the skin colors.
D: danse (interaction between bodies).
E automatic process.
d activates the distance test.
e displays neural network errors.
G automatic satellite.
g yes/no gravity.
G yes/no mode auto gravity.
h help.
i resets bodies.
I resets parameters.
j joystick.
l yes/no spot light.
M yes/no displ mouse.
m mini menu.
o yes/no ext illum texture skin.
p sky pulsation.
q exit.
r ground and sky rotation.
S yes/no see.
s self texturing.
T yes/no transparency.
t yes/no texture. a name="shortcut_(">
( Sensor_Coe-=.1. a name="shortcut_)">
( Sensor_Coe+=.1. a name="shortcut_+">
+ out of earth gravity.
- back to earth if sound low.
= out of this universe.
* dilatation variations.
; hide sensor coe scale.
, hide mini control.
. maintain bodies on earth. a name="shortcut_$">
$ displaying informations:
forces: gravity (red), music (green), gravity + music (yellow)
speed rota vol body (yellow circles)

## Launching options

adj: automatic balance of audio amplitude (keep silence during the process), also avaible in interaction by pressing A key.
aud=n: audio sensor with n bodies.
bal: balance.
bod=n: n bodies.
cau=c: multiplier coefficient of audio signal.
cmo=c: multiplier coefficient of mouse signal.
col: shortcut C changing the skin colors.
dan: interaction between bodies (dance).
del=ns: waits ns seconds before calling audio ini (allows chaining several programmes).
dis: shortcut d controlling the distances between the bodies.
eff=n: shortcut E with tempo n (500 default).
err: shortcut e displaying the error curves of the neuralk networks.
: short : hidding the menus.
exi: exit after write audio.
gra: mode auto gravity
joy: mouse as a joystick, see file gravity_aud_joy_*.js.
move the mouse (down up): increases the sensor value.
an arrow (green at the bottom, red at the top) through gravity (green).
with option sou DirectX buffers are available in 2 dimensions (y: subfolders of main forlde sounds, x: files in thoses folders). satellite (yellow) and infini (red).
les: like shortcut -.
lig: shortcut l switching from standard light to spot light.
min=n: low amplitude filter.
max=n: high amplitude filter.
mod: MODEL function.
mou=n: sensor mouse with n bodies.
net: NETWORK function.
num=n: first of saved image.
off: shortcut o
poi=n: maintain bodies on earth.
pro=n: for chaining dynasensa_aud_n.js with option tim=t.
rin: RING function.
rot: ROTY function.
sec=t: the programme is killed after t seconds, then launched again (anticipating eventual memories lost).
sel: shortcut s producing the automapping.
sim=tmp.mem: simulation.
sou: sounds, with option mou and option joy simulation of a joystick with y mouse, the sounds are associated to the joystick, they are played in subfolders of folder sounds. If, after 10 seconds, the mouse has not been moved, the sounds gradually decrease.
sta: dilatation variations.
syn=tmp.mem: image simulation and synthetic music.
sto=name.stock: sensor values in file name.stock (build with Store.func tool.
tex: shortcut t yes/no texture.
tex: shortcut t yes/no texture.
tim=t: the programme is killed after t frames, then launched again.
tra: shortcut T enables transparency.
wav: WAV function.
wra=name.wav: write audio.
wri=name.eee: write images.

### Examples

"aud=3;foc" launches the programme with:
audio sensor
3 bodies
automatic focal
"syn=tmp.mem;bod=3;foc;hai=3;wra=tmp.wav;wri=start/A.jpg;" launches the programme with:
image simulation and synthetic music from file tmp.mem
3 bodies
automatic focal
hairs coefficient 3
writes audio tmp.wav
writes images start/A0001.jpg start/A0002.jpg ...
tmp.mem has been written by Sensor programme.

## Example

Click on DEMO.js for default launching.
Click on gravity_aud_4.js: 4 bodies with audio.
Press : key (colon): menus appear.
Click on MUSIC: files *.js are dsplayed, click on one of them.
Use
( and
): decrease and incresse the audio sensibility.
When the bodies are satellised press + key: out of the earth influence, travle through the galaxy stars and finaly out of our galaxy through the universe.
Certains liens ne seront pas actifs s´il n´y a pas de connexion internet.

## Principe
Dispositif
Les menus
Raccourcis clavier
Options de lancement
Exemple

## Principe

Cette application fait suite à gravity2.0 (2016) avec la souris comme capteur et avec les mêemes options d´interaction.
Une échelle située sur la gauche de l´écran permet de moduler le son.
Les corps sont posés sur le sol et agissent selon un champ de gravité et des forces déterminées par un algorithme de collision (impact sur le sol).
Chaque corps est associé à un réseau neuronal dont les entrées sont les angles de ses membres et dont les sorties sont les couples appliqués à ces membres, un tel réseu est entrainé par l´algoriteme de la rétropropagation de l´erreur à partir d´un ensemble prédéfini de couples d´apprentissage (input,output), les sorties tendant à préserver l´équilibre dans une optique de danse.
Des forces additionnelles sont fournies à partir de la position de la souris le long d´une échelle verticale situé à gauche de l´écran:
pause (en bas)
gravity force de gravité
take off force de gravité +° force ascendante pouvant provoquer une satellasitation
infinite libération de lČacute;attraction terresrtre, puis du soleil et enfin sortie de la galaxie et voyage vers les autres galaxies.

# Dispositif

PC (4GHz, 16Go), système Windows, carte graphique (Nvidia récente).
bafles
une table supportant une souris
Il suffit de liquer sur DEMO.js
déplacer verticalement la souris.

## The menus

Accessible par la touche : (deux points).

### MAIN
NETWORK
PARAM
SENSOR

## MAIN

### HEL: help
DOC: this file
MODEL
ACT
AUTO
INI
EFF
MUSIC
CENTER
PAR
EXI

MODEL
Cliquer sur nb: nombre de corps, sur displ: corps actifs.

### ACT

Lance le processus dans son entier.

### AUTO

Mode automatique, il faut activer un capteur.

### INI

Initialise tous les corps.

### EFF

Variation automatique des effets (avec ou sans textes, automappe, ...).

### MUSIC

Cliquer sur name.js; joue le fichier audio namle.eee.
Les menus sont cachés, cliquer dans le cadre afin de cacher le player, presser la touche ENTER puis ; pour un mini contrôle (ajuste l´amplitude du signal avec la touche ( et )).

### CENTER

### PARAM

Affiche certains paramètres.

### EXI

Exit.

## Parameters menu

### HEL: help
CHANGE
OUT
READ
WRITE

### CHANGE

HEL: help
INI: reset
SCALES: affiche les échelles permettant de modifier las paramètres:
gravité
reb: rebound
fric: friction
force: force de collision
coe: transmission
visc: viscosité
force add: force verticale
coe gravity: coefficient de gravité
ni: duré des trajectoires
period: vitesse d´affichage
limit: limite pour take off
aim: taille du buffer du point de visée
self: amplitude de l´auto mapping
agitate: agitation par défaut
plus: coefficient en mode plus
gravité
taille des textures
wind: fenêtre de l´auto mapping
ang: angle
balance,visc: coefficient d´équilibre
SKIN: switches body/skin mode
ILLUM: yes/no illum
EXT: switches body/skin mode
ROTY: yes/no roty of ground and sky
PART: yes/no particle
INI: reset
READ
lit les paramètres depuis le fichier PARAM
WRITE
écrit les paramètres courants dans le fichier PARAM

### OUT

HEL: help
RING
WAV
RECORD
SYNTH
PLAY
TEST

## Keyboard Shortcuts

: (colon) cache les menus.
a: visée automatique.
A: équilibre automatique de l´amplitude audio (nécessite le silence).
b: relance avce les options (début).
C: changemant automatique des couleuts des corps.
D: danse (interaction entre les corps).
E processus automatique.
d activele test de distance.
e affiche les erreurs des réseaux.
G satellisation automatique.
g yes/no gravity.
G yes/no mode auto gravity.
h help.
i initialise les corps.
I initialise les paramètres.
j joystick.
l yes/no spot light.
M yes/no displ mouse.
m mini menu.
o yes/no ext illum texture skin.
p pulsation du ciel.
q exit.
r rotation du sol et du ciel.
S yes/no see.
s self texturing.
T yes/no transparency.
t yes/no texture. a name="shortcut_(">
( Sensor_Coe-=.1. a name="shortcut_)">
( Sensor_Coe+=.1. a name="shortcut_+">
+ hors de la gravitation.
- retouir au sol si le son est bas.
= hors de cet univers.
* variation des dilatations.
; cache sensor coe scale.
, cache mini control.
. maintient les corps sur la terre. a name="shortcut_$">
$ affiche des informations:
forces: gravity (red), music (green), gravity + music (yellow)
speed rota vol body (yellow circles)

## Launching options

adj: équilibreautomatique de l´amplitude de l&acuta;audio (garder le silence), aussi accessible en mode interaction en pressant la touche A.
aud=n: audio sensor avec n corps.
bal: balance.
bod=n: n corps.
cau=c: coefficient du signal audio.
cmo=c: coefficient du signal de la souris.
col: shortcut C change les couleurs des peaux.
dan: interaction entre les corps (danse).
del=ns: waits ns secondes avant d´ppeler audio ini (permet de chainer plusieurs programmes).
dis: shortcut d contrôle les distances entre les corps.
eff=n: shortcut E avec tempo n (500 default).
err: shortcut e affiche les courbes d´erreurs des réseaux neuronaux.
: short : cache les menus.
exi: exit après write audio.
gra: mode auto gravity
joy: la souris comme un joystick, voir fichiers gravity_aud_joy_*.js.
déplacer la souris (bas haut): incrémente les valeurs du capteur.
une flèche (verte en bas, rouge en haut) en passant par gravity (vert).
avec l´option sou les buffers de DirectX sont accessibles en 2 dimensions (y: subfolders of main folder sounds, x: fichiers dans ce dossier). satellite (jaune) et infini (rouge).
les: like shortcut -.
lig: shortcut l passe des lumiès;es ordinaires aux to spots.
min=n: filtre basses amplitudes.
max=n: filtre hautes amplitudes.
mod: MODEL fonction.
mou=n: sensor mouse avec n corps.
net: NETWORK fonction.
num=n: première image sauvée.
off: shortcut o
poi=n: maintient les corps sur terre.
pro=n: pour chainer dynasensa_aud_n.js avec l´option tim=t.
rin: RING fonction.
rot: ROTY fonction.
sec=t: le programme est tué après t secondes, puis relancé (anticipant d´eventuals overflow).
sel: shortcut s produit automapping.
sim=tmp.mem: simulation.
sou: sounds, avec l´option mou et joy simulation d´un joystick avec le y de la souris, les sons sont associés au joystick, ils sont joués dans les sous dossiers du dossier sounds. Si, après 10 secondes, la souris n´ pas bougée, le son décroit graduellement.
sta: variation des dilatations.
syn=tmp.mem: simulation d´image et musique de synthèse.
sto=name.stock: les valeurs du capteur sont sauvées dans le fichier name.stock (construit avec l´outil Store.func.
tex: shortcut t yes/no texture.
tim=t: le programme est tué après timages, puis relancé.
tra: shortcut T active les transparences.
wav: WAV fonction.
wra=name.wav: écrit l´audio.
wri=name.eee: écrit les images.

### Exemples

"aud=3;foc" launches the program with:
capteur audio
3 corps
focale automatique
"syn=tmp.mem;bod=3;foc;hai=3;wra=tmp.wav;wri=start/A.jpg;" lance le programme avec:
simulation d´images et synthèse de son depuis le fichier file tmp.mem
3 corps
focale automatique
coefficient des cheveux: 3
écrit l´audio dans tmp.wav
écrit les images start/A0001.jpg start/A0002.jpg ...
tmp.mem a &eactue;té écrit par le programme Sensor.

## Exemple

Cliquer sur DEMO.js pour un lancement par défaut.
Cliquer sur gravity_aud_4.js: 4 corps avec audio.
Enfoncer la touche : (colon): les menus apparaissent.
Cliquer sur MUSIC: les fichiers *.js sont affichés, cliquer sur un nom puis.
utiliser
( et
): décrémente ei incrémente la sensibilité de l´audio.
Quand les corps sont satellisés enfoncer la touche +: sortie de l´attraction terrestre, voyage à travers de la galaxie et finalement hors de celle-ci dans l´univers.