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.

Sur ce fichier, Blender pulse à 60 Hz, il y a de la latence si vous faites bouger les curseurs vite et longtemps (3 s).

La structure du dossier

Osc 01.png

Une vue de Blender 2.57

Osc 02.png

OSC.py

Choisissez la version python 2.6 ou python 3.x: 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

 Osc 06.png

pd n'a pas de latence à la reception, par contre Blender est en retard si pd envoie trop vite !  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:

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:

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

  • communication_entre_pure-data_et_blender_en_osc.txt
  • Dernière modification: 2019/03/03 09:59
  • par serge