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 et som-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).

pdlispsom capture



    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.

som-map-rect capture

    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.
    I
l 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.
   




< 4. exemple de mise en ligne
du serveur neuromimetique

index

Frédéric Voisin : Maquette du serveur multi-agent neuromimetique de Amplification / Synaptique