Une pléthore de modules OSC Python - lequel utiliser?

Open Sound Control (OSC) est un protocole de communication entre ordinateurs, synthétiseurs de son et autres dispositifs multimédia optimisé pour la technologie de réseau moderne. Il est particulièrement courant d'utiliser OSC avec MAX/MSP -- ce qui est en fait ce que je fais, utiliser OSC avec Python pour parler à un autre sous-système dans MAX.

il y a un tas de modules python qui prennent en charge L'OSC. Grand. Et ils prétendent tous être simples, utiles et parfaits. Au risque de frôler dans territoire subjectif, à quoi servent les cas que votre expérience suggère pour les modules suivants?

  • python-osc
  • pyOSC
  • SimpleOSC (bien que cela ressemble à un module plus ancien)

je suppose qu'une simple mise en oeuvre me servirait le mieux Puisque je n'ai qu'une connaissance superficielle de la CVMO. Et J'utilise Python 2.7.

18
demandé sur Wes Modes 2014-03-03 04:10:20

5 réponses

j'ai utilisé pyOSC avec beaucoup de succès sur OSX. Le code n'est pas très développé, mais c'est probablement dû à sa stabilité et à sa simplicité. J'ai brièvement essayé txosc et il peut justifier d'autres tests.

mon usage de pyosc est limité mais il fonctionne bien. par exemple.

import OSC
c = OSC.OSCClient()
c.connect(('127.0.0.1', 57120))   # connect to SuperCollider
oscmsg = OSC.OSCMessage()
oscmsg.setAddress("/startup")
oscmsg.append('HELLO')
c.send(oscmsg)
9
répondu ptr 2014-03-04 10:18:47

ce n'est pas exactement ce que la question demandait, mais je pense que c'est quelque chose qui vaut la peine d'être mentionné ici: une chose ennuyante à propos des différents modules OSC de Python est que la plupart des travaux avec L'un ou l'autre Python 2.x ou avec Python 3.x mais pas avec les deux, ce qui signifie que vous pourriez avoir à changer la base de code et réécrire une partie de votre application dans le futur.

le seul que J'ai trouvé qui cible à la fois Python 2.x et 3.x est Pyliblo, qui est en fait un wrapper pour la bibliothèque C Liblo. Liblo a été spécialement testé pour fonctionner avec Pd et SuperCollider (voir la note à la fin de sa page principale), ce qui est ce qui me tenait le plus à cœur lors de l'utilisation de telles bibliothèques... Un inconvénient de Liblo est qu'il est un peu plus difficile de travailler sur MS Windows car il ne supporte que les threads POSIX (pthreads) mais pas l'API native win32 thread, donc vous avez besoin d'une bibliothèque d'émulation comme expliqué à http://liblo.sourceforge.net/README-platforms.html