======Communication entre Pure-data et Blender en OSC====== Cet exemple réalise le déplacement du Cube sur l'axe X, à l'aide des sliders dans Pure Data, avec un retour dans Pure Data de la position dans un slider. ===== Download ===== * python 2.6 et blender 2.49b {{media_10:osc_py2.6_blender2.49_pd_xy.zip|OSC py2.6 Blender2.49 pd XY.zip}} * python 3 et blender 2.5 {{media_10:osc_py3_blender2.5_pd_xy.zip|OSC py3 Blender2.5 pd XY.zip}} Sur ce fichier, Blender pulse à 60 Hz, il y a de la latence si vous faites bouger les curseurs vite et longtemps (3 s). ===== Description ===== === La structure du dossier === {{media_10:osc_01.png|Osc 01.png}} === Une vue de Blender 2.57 === {{media_10:osc_02.png?500|Osc 02.png}} === OSC.py === Choisissez la version python 2.6 ou python 3.x: [[http://gitorious.org/pyosc|pyosc sur gitorious.org]] * La méthode **decodeOSC()** sert à décoder le message à la réception dans Blender. * Les méthodes **OSCClient() OSCMessage() setAddress() append() sendto()** servent à envoyer un message depuis Blender. === Pure Data === {{media_10:osc_06.png?400| Osc 06.png}} ===== Problème de latence ===== pd n'a pas de latence à la reception, par contre Blender est en retard si pd envoie trop vite ! {{media_10:osc_07.png?400| Osc 07.png}} ==== Des fichiers pour tester ==== === Mise en évidence de la latence due au Buffer UDP === Le script de reception utilise toutes les données reçues ce qui crée une latence très longue, le cube bouge encore longtemps dans Blender alors que pd n'envoie plus rien: **{{media_10:osc_with_latency_2.49.zip| OSC with latency 2.49.zip}}** === Remisse à 0 du Buffer à chaque frame de Blender === Le script de reception vide le buffer et imprime dans le terminal les valeurs du "trash" inutilisées et détruites: **{{media_10:osc_clean_buffer_2.49.zip| OSC clean buffer 2.49.zip}}** Pour f = 0 (60 Hz), il y a peu de trash, pour f = 1 (30hz) il y a beaucoup de trash, l'action est un peu hachée mais ne se décale pas dans le temps. ==== Résoudre cette latence ==== [[Latence_de_l'_OSC_dans_Blender|Des explications et des solutions]] en détails. {{tag>bge logiciels_de_communication sb }}