5. Connection et
exploitation musicale en
temps réel
La
communication du noyau synaptique précédement
décrit avec le
monde
réel et musical s'effectue au moyen d'une interface
audionumérique
et graphique développée dans Pure Data. L'exemple
décrit précédement
(som-exemple1.lisp) peut être connecté aux interfaces Pure
Data pdlispsom.pd
etsom-map-rect.pd. Le choix de Pure Data permet la mise e
oeuvre du dispositif indépendamment du choix des plateformes
informatiques.
La première interface dans Pd permet de
controler,
d'observer et d'écouter le réseau synaptique. Comme on le
voit, les
données peuvent être sont transmises et provenir d'un
réseau situé soit
localement, soit de toute autre adresse IP à l'aide des objets
externes
Pd netsend et netreceive permettant d'envoyer des
vecteurs d'assez grande
taille. Les contraintes du protocole UDP, ne garantissant pas une
liaison synchrone ou le bon acheminement des paquets de données,
sont
compensees par le débit, assurant suffisamment de redondance.
L'utilisation de liaisions intranet filaires permet de limiter le
nombres de paquets perdus : même si le système
s'accoderait au réseau WIFI, on préferera des liaisons
par cables. Cette
architecture sera développée avec le matériau
sonore original de la partition (sons transformés de flûte
basse, contrebasse, steel-drum) pour le concert et
l'installation Amplification /
Synaptique; les programmes d'analyse et de synthèse sont
déterminés
au fur et à mesure de l'avancement de l'apprentissage et des
répétitions.
Cette interface Pd permet de communiquer avec
le réseau SOM mis en place à la section
précédente.
On se connecte au réseau SOM en cliquant sur les
messages précisant les IP où se trouve le réseau
(127.0.0.1 correspond à la meme adresse que le réseau
SOM). L'activation du métronome (bouton "simul. on/off",
à gauche) active l'envoi de vecteurs de test vers le
réseau en UDP. Le neurone ayant la résonance la plus
forte au vecteur s'affiche à l'écran dès le calcul
neuronal est effctué par le serveur LISP. Le délai,
presque instantané, est très supportable pour un jeu en
temps-réel. Le volume du son de la synthèse s'active
depuis l'objet "pd synthèse"; en bas à droite; le choix
manuel des vecteurs d'exemple se fait dans l'objet "pd simul" (à
gauche).
L'interface suivante,
dans Pure Data également, réalise la
représentation graphique du réseau
synaptique dans OpenGL.
On peut y régler tous les paramètres de projection et de
représentation
géométrique 2D ou 3D de l'activation du
réseau. Il permet également l'enregistrement de
l'activité du reseau pour son étude,
relativement a la partition ou à des stimuli spécifiques.
Dans la figue
suivante, nous observons sur le même écran l'agent
synaptique SOM en
activité (en bas a gauche) dans un terminal LISP (exemple1.lisp)
, et
les interfaces dans Pure Data, avec une représentation graphique
dans
OpenGL (gem) les activations "neuronales". Les neurones les plus actifs
sont ceux situés autour du neurones gagnant, par "contagion".
A chaque agent synaptique LISP correspond une
interface dediée, semblable, chacune étant fondée
sur la même structure (analyse /
synthese audio, représentation graphique) mais se
différenciant par
leurs programmes d'analyse ("perception") et / ou de synthese
("reaction"), selon les encodages retenus.
Un agent synaptique n'est pas
nécessairement toujours connecté a un synthétiseur
audio, mais peut agir, par
ses propres activations, sur celles d'un autre agent, son action sur la
synthèse devenant alors indirecte. Les différentes
possibilités de
rétroaction peuvent évoluer par une configuration
dynamique
des différents ports UDP des agents, ce qui régit le
comportement général du
système multi-agents à un niveau de période
supérieur. Cette dynamique doit être aussi
autorégulée et "tirée", inspirée, de
l'apprentissage de la partition. Nous prévoyons
donc de doter le système de trois synthétiseurs audio
differenciés, correspondant aux parties de la flûte basse,
de la contrebasse et du steel drum. Les
sonorités seront extraites des échantillons sonores des
instruments et transformées en temps réel selon les outputs du système
neuromimétique transmis en UDP. Ces
synthétiseurs
seront implémentés sur un serveur indépendant,
réalisant en même
temps l'analyse destinée aux agents. Cette analyse
en temps réel n'est cependant nécessaire que pour le
temps des répétitions et du concert. A ce moment
seulement il est nécessaire de disposer d'un ordinateur
supplémentaire. Pendant l'installation, les données
pouvant alimenter et stimuler le système synaptique
est déjà constitué sous la forme des
vectuers d'apprentissage qui seront envoyés plus où moins
périodiquement en rappel.
Le nombre d'agents du système
peut éventuellent varier selon les ressources de calcul dont
nous disposerons.
Six agents constituent un minimum pour réaliser les trois
parties distinctes
capables d'interagir entre-elles, et d'alimenter un état interne
dynamique et autonome par une mise en miroir de deux cartes
auto-organisatrices.
Voici un exemple de production sonore
résultant d'un système multi-agents de ce type,
appliqué à la transformation de cours échantillons
de voix par synthèse granulaire. Les cycles sont ceux
résultant de l'auto-organisation permanente de chaque agent qui
se stimulent et s'influencent les uns les autres, de
manière quasi-autonome:
exemple de système multiagent "vocal" (mp3):
La diffusion sur internet se fait au mouen d'une unité centrale
qui calcule la compression audionumérique
de la sortie
audio du sytème et effectue simultanément le transfert des
données permettant l'observation du reseau (images, texte)vers le serveur
internet Apache . Ce serveur est
ainsi chargé, d'une part, du streaming internet (Icecast), dont
le délai sera celui de la
compression audionumérique. D'autre part, les données
concernant l'état interne du système multi-agents
peuvent être mise a jour périodiquement, selon
différents cycles, au
sein d'une base de données SQL. Une interface PHP peut permettre
d'assurer la connection des données à mettre en valeur
avec le serveur Web dynamique. Cette solution permet
une interaction directe et publique sur
le système depuis
internet mais, dans le cadre de ce projet, ce type d'interaction
est
réservé aux
auteurs, dans la mesure où il doit s'effectuer en
relation à la partition originale. Dans ce cas, l'interaction
peut
s'effectuer plus simplement avec les protocoles SSH, plus leger, ou VNC.
Il existe de
nombreuses
alternatives, selon les formas recherchés. Une méthode la
plus directe, la plus simple et la plus robuste, telle que la
régénération automatique de pages html, permet
aussi de
représenter les états
(poids synaptiques, états, variables) et les activations
neurales graphiques selon différentes styles. Dans la mesure ou
le serveur web est sur le réseau local du calcul, cette
régénération peut s'effectuer en continu en
écrivants les output
du système directement sur le disque dur du serveur Web. Si le
streaming vidéo est concevable, il alourdirait
considérablement le système et nécessiterait deux
machines supplémentaires non nécessaires à ce
projet (l'image ne venant, dans ce projet, quùaccompagner
"anecdotiquement" la musique). La mise en service du
prototype de serveur de streaming est prévue
dans quelques semaines.