Outils pour utilisateurs

Outils du site


open_sound_control_osc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
open_sound_control_osc [2018/07/19 08:43] – [Les pages Logiciels de communication] sergeopen_sound_control_osc [2021/12/13 17:25] (Version actuelle) – [Comprendre ce qu'est OSC] Benjamin Labomedia
Ligne 4: Ligne 4:
  
   * [[https://github.com/kylemcdonald/ofxFaceTracker|Faceosc]] Interprétation du visage en osc.   * [[https://github.com/kylemcdonald/ofxFaceTracker|Faceosc]] Interprétation du visage en osc.
-  * https://hexler.net/software/touchosc +  * [[https://hexler.net/software/touchosc|Touchosc]] 
-  * https://www.lightjams.com/osc.html +  * [[https://www.lightjams.com/osc.html|Lightjams]] 
-  * https://fr.wikipedia.org/wiki/Pure_Data +  * [[https://fr.wikipedia.org/wiki/Pure_Data|Pure Data]] 
-  * https://fr.wikipedia.org/wiki/Cubase +  * [[https://fr.wikipedia.org/wiki/Cubase|Cubase]] 
-  * https://fr.wikipedia.org/wiki/Ardour+  * [[https://fr.wikipedia.org/wiki/Ardour|Ardour]] 
 +  * [[https://openstagecontrol.ammd.net/|Open Stage Control]] Une alternative libre à TouchOSC tournant sur tous les OS
  
  
Ligne 14: Ligne 15:
 ===== Ressources Web ===== ===== Ressources Web =====
  
-  * [[http://en.wikipedia.org/wiki/Open_Sound_Control|http://en.wikipedia.org/wiki/Open_Sound_Control]] +  * [[http://en.wikipedia.org/wiki/Open_Sound_Control|http://en.wikipedia.org/wiki/Open_Sound_Control|Open Sound Control sur en.wikipedia.org]] 
-  * [[https://fr.wikipedia.org/wiki/Open_Sound_Control|fr.wikipedia.org/wiki/Open_Sound_Control]] +  * [[https://fr.wikipedia.org/wiki/Open_Sound_Control|Open Sound Control sur fr.wikipedia.org]] 
-  * [[http://opensoundcontrol.org/|http://opensoundcontrol.org/]] opensoundcontrol.org +  * [[http://opensoundcontrol.org/|Le site opensoundcontrol.org]] 
-  * [[http://opensoundcontrol.org/publication/best-practices-open-sound-control|http://opensoundcontrol.org/publication/best-practices-open-sound-control]] les bonnes pratiques de l'OSC+  * [[http://opensoundcontrol.org/publication/best-practices-open-sound-control|Les bonnes pratiques de l'OSC]]
  
 +===== Séquenceurs OSC =====
  
 +  * Vezér https://imimot.com/vezer/ 
 +  * QLab https://figure53.com/qlab/
 +  * Un petit français très chouette avec plein de fonctionnalités http://benjamin.kuperberg.fr/chataigne
 +  * Simple dév en openframework https://github.com/kuflex/KuStudio
 +  * Un premier multiplateforme  https://ossia.io/
 +  * Un vieux plutôt linux http://kymatica.com/apps/algoscore
 +  * Repear reste un bon "client" à tester, il peut enregistrer et lire de l'osc, peut être possible sans plus de formalités de transformer les rec osc en pattern déclenchable par MIDI
 +  * Iannix donc https://www.iannix.org/fr/ qui a plein de fonctionnalités
  
- +{{youtube>RSBU9MwJNLY?medium}}
-=== mylabotools === +
- +
-[[https://github.com/sergeLabo/mylabotools|mylabotools]] contient des modules pour les opérations courantes dans le Game Engine, en particulier osc. Ce sont des [[http://fr.wikipedia.org/wiki/Fa%C3%A7ade_%28patron_de_conception%29|**façades**]]. +
  
  
Ligne 32: Ligne 38:
 ===== Comprendre ce qu'est OSC ===== ===== Comprendre ce qu'est OSC =====
  
-**OSC réalise l'encapsulation et l'extraction de datas**, le transfert des datas se fait en UDP ou en TCP. En gros, encapsuler c'est sérialiser: en python, cela peut se faire avec les modules pickle, cpickle, json. Les données sont converties en bytes pour passer en UDP. OSC définit des règles qui servent de "normes".+**OSC réalise l'encodage et le décodage de datas**, le transfert des datas se fait en UDP ou en TCP. Encoder c'est structurer les datas et les convertir en bytes (octets): en python, cela peut se faire avec les modules pickle, cpickle, json. OSC définit des règles qui servent de "normes".
  
   * [[http://opensoundcontrol.org/introduction-osc|opensoundcontrol.org]] Ce protocole simple mais puissant fournit tout le nécessaire pour contrôler en temps réel du son et autres supports de traitement tout en restant flexible et facile à mettre en œuvre.   * [[http://opensoundcontrol.org/introduction-osc|opensoundcontrol.org]] Ce protocole simple mais puissant fournit tout le nécessaire pour contrôler en temps réel du son et autres supports de traitement tout en restant flexible et facile à mettre en œuvre.
Ligne 46: Ligne 52:
  
 En pratique, sur un réseau local le TCP va aussi vite que l'UDP. TCP permet le mode connecté, qui permet d'identifier facilement les connectés: [[http://twistedmatrix.com/|Twisted]] est parfait pour ça. En pratique, sur un réseau local le TCP va aussi vite que l'UDP. TCP permet le mode connecté, qui permet d'identifier facilement les connectés: [[http://twistedmatrix.com/|Twisted]] est parfait pour ça.
 +
 +{{ ::score.png |ossia screenshot}}
 ===== Comment implémenter OSC en python ? ===== ===== Comment implémenter OSC en python ? =====
- +====oscpy du projet Kivy==== 
-==== txosc ==== +  * **[[kivy_oscpy|]]** 
- +En 2020, ce projet fait partie du projet Kivy: laisser tomber tout le reste, utilisez ça !
-Uniquement python2.7 en avril 2012, mais twisted est en cours de portage. Je cite un des auteurs :"It's the Best implementation of OSC for Python as far as I know.". Des ressources sur [[txosc|txosc]] +
 ==== liblo ==== ==== liblo ====
  
-[[http://liblo.sourceforge.net/|**liblo**]] est une bibliothèque d'implémentation d'OSC, et [[http://das.nasophon.de/pyliblo/|**python-liblo**]] en est la version python. Une recherche très approfondie m'a donné quelques projets qui l'utilise:+[[http://liblo.sourceforge.net/|liblo]] est une bibliothèque d'implémentation d'OSC, et [[http://das.nasophon.de/pyliblo/|python-liblo]] en est la version python. Une recherche très approfondie m'a donné quelques projets qui l'utilise:
  
   * OpenNI   * OpenNI
   * RoseGarden   * RoseGarden
  
-Il n'y a pas de fonction "decode": il faut ajouter des méthodes (handle) pour définir ce que l'on veut en fonction du message. Le projet Android meet Blender (OSC): [[http://www.surreal.asturnazari.es/node/178|www.surreal.asturnazari.es]] utilise pyliblo. **txosc** est beaucoup mieux que pyliblo.+Il n'y a pas de fonction "decode": il faut ajouter des méthodes (handle) pour définir ce que l'on veut en fonction du message. Le projet Android meet Blender (OSC): [[http://www.surreal.asturnazari.es/node/178|www.surreal.asturnazari.es]] utilise pyliblo.
  
 ==== pyOSC une implémentation simple de Open Sound Control en Pure Python ==== ==== pyOSC une implémentation simple de Open Sound Control en Pure Python ====
  
-  * [[http://gitorious.org/pyosc|**gitorious.org/pyosc**]] propose le développement de SimpleOSC. +  * [[http://gitorious.org/pyosc|gitorious.org/pyosc]] propose le développement de SimpleOSC. 
-  * [[https://trac.v2.nl/wiki/pyOSC|**trac.v2.nl/wiki/pyOSC**]] donne des explications. Je cite:+  * [[https://trac.v2.nl/wiki/pyOSC|trac.v2.nl/wiki/pyOSC]] donne des explications. Je cite:
  
 "Ce module est vaguement basé sur le bon vieux "SimpleOSC", mis en œuvre par Daniel Holth & Clinton McChesney. Il a surtout été réécrit, et tout un ensemble de nouvelles classes ont été ajoutés: OSC-bundles, un simple OSC-client, un simple OSC-server, threading & forking OSC-servers et un plus complexe "threading & forking OSC-servers OSC-client" qui supporte les abonnements et OSC-address basée sur le filtrage d'adresse." "Ce module est vaguement basé sur le bon vieux "SimpleOSC", mis en œuvre par Daniel Holth & Clinton McChesney. Il a surtout été réécrit, et tout un ensemble de nouvelles classes ont été ajoutés: OSC-bundles, un simple OSC-client, un simple OSC-server, threading & forking OSC-servers et un plus complexe "threading & forking OSC-servers OSC-client" qui supporte les abonnements et OSC-address basée sur le filtrage d'adresse."
  
-== Historique =+===SimpleOSC===
- +
-**SimpleOSC:**+
  
   * Copyright (c) Daniel Holth & Clinton McChesney.   * Copyright (c) Daniel Holth & Clinton McChesney.
  
-encore valable avec python2.6 et c'est cette version qui est dans le pyKit de Julian oliver ! toujours en ligne sur [[http://www.ixi-software.net/content/body_backyard_python.html|ixi-software.net]]+encore valable avec python2.6 et c'est cette version qui est dans le pyKit de Julian oliver ! toujours en ligne sur [[http://www.ixi-software.net/content/body_backyard_python.html|ixi-software.net]], il est aussi utilisé par kivy.
  
-**pyOSC:**+===pyOSC===
  
   * Copyright (c) 2008-2010, Artem Baguinski <artm@v2.nl> et al., Stock, V2_Lab, Rotterdam, Netherlands.   * Copyright (c) 2008-2010, Artem Baguinski <artm@v2.nl> et al., Stock, V2_Lab, Rotterdam, Netherlands.
Ligne 83: Ligne 87:
  
   * Copyright (c) 2010 Uli Franke <uli.franke@weiss.ch>, Weiss Engineering, Uster, Switzerland.   * Copyright (c) 2010 Uli Franke <uli.franke@weiss.ch>, Weiss Engineering, Uster, Switzerland.
- 
-== Version == 
  
 **v0.3.0 - 27 Dec. 2007** Started out to extend the 'SimpleOSC' implementation (v0.2.3) by Daniel Holth & Clinton McChesney. **v0.3.0 - 27 Dec. 2007** Started out to extend the 'SimpleOSC' implementation (v0.2.3) by Daniel Holth & Clinton McChesney.
Ligne 96: Ligne 98:
   * Le dépot sur gitorious.org n'est plus actif en novembre 2017   * Le dépot sur gitorious.org n'est plus actif en novembre 2017
  
-Un lien pour récupérer les sources: [[https://gitorious.org/pyosc/devel/source/6aaf78b0c1e89942a9c5b1952266791b7ae16012?p=pyosc:devel.git;a=snapshot;h=633c0112318a3519314aa798a552a092566c73c1;sf=tgz|sources]] +Un lien pour récupérer les: [[https://gitorious.org/pyosc/devel/source/6aaf78b0c1e89942a9c5b1952266791b7ae16012?p=pyosc:devel.git;a=snapshot;h=633c0112318a3519314aa798a552a092566c73c1;sf=tgz|sources]]
- +
-== Download == +
- +
-Pack des fichiers du 22 juin 2011 : **{{:OSC.py versions.zip|fig:OSC.py versions.zip}}** +
- +
-===== Importer votre module OSC en python =====+
  
-Les explications sur la page [[Importer_un_module_python_dans_un_script|**Importer un module python dans un script**]].+=== Version python 3=== 
 +La version python 3 est [[https://github.com/sergeLabo/pymultilame/tree/master/pymultilame|OSC3.py de pymultulame]]
  
-===== Des exemples simples pour envoyer et recevoir en python ===== 
  
-Des exemples pour un script en boucle avec OSC.py **[[Envoyer_et_recevoir_de_l'OSC_en_python|Envoyer et recevoir de l'OSC en python]]**.+===== Documentation pour Blender en python =====
  
 +  * [[https://github.com/sergeLabo/blenderOSC|blenderOSC sur GitHub]]
 +  * [[https://github.com/sergeLabo/pyOSCcodec|pyOSCcodec sur GitHub]] qui ne contient que code et decode
 +  * [[TapOSC|TapOSC Application Android imitation de TouchOSC]]
 +  * [[https://github.com/sergeLabo/TapOSC|TouchOSC sur GitHub]]
 ===== Des exemples entre puredata et Blender ===== ===== Des exemples entre puredata et Blender =====
  
Ligne 118: Ligne 118:
 ===== Problème de latence très grande ===== ===== Problème de latence très grande =====
  
-Si la latence est énorme, le problème vient du buffer UDP. Si l'envoi de data se fait à une fréquence supérieure à la lecture, le Buffer se remplit et les datas qui sont lues dans ce buffer ne sont pas les dernières envoyées. Des [[Latence_de_l'_OSC_dans_Blender|**explications et des solutions**]].+Si la latence est énorme, le problème vient du buffer UDP. Si l'envoi de data se fait à une fréquence supérieure à la lecture, le Buffer se remplit et les datas qui sont lues dans ce buffer ne sont pas les dernières envoyées. Des **[[Latence_de_l'_OSC_dans_Blender|explications et des solutions]]**.
  
 ===== Bundle or not Bundle ===== ===== Bundle or not Bundle =====
Ligne 131: Ligne 131:
 **Intêret du Bundle**: Si il y a beaucoup de messages qui changent en même temps, tous les messages seront traîtés à chaque boucle du script. Sinon, il serait traîtés dans des boucles successives. **Intêret du Bundle**: Si il y a beaucoup de messages qui changent en même temps, tous les messages seront traîtés à chaque boucle du script. Sinon, il serait traîtés dans des boucles successives.
  
-Particularité d'un script dans Blender: Le script est excécuté à chaque frame, donc maxi 60 fps(60Hz). Le script peut décoder le bundle à chaque frame et Blender n'aura pas de latence. Il faudra aussi s'assurer que la valeur lue est bien la dernère reçue en définissant la [[Latence_de_l'_OSC_dans_Blender|**taille du buffer UDP**]].+Particularité d'un script dans Blender: Le script est excécuté à chaque frame, donc maxi 60 fps(60Hz). Le script peut décoder le bundle à chaque frame et Blender n'aura pas de latence. Il faudra aussi s'assurer que la valeur lue est bien la dernère reçue en définissant la **[[Latence_de_l'_OSC_dans_Blender|taille du buffer UDP]]**.
  
 TouOSC envoie un message toutes les 0.1 secondes en jouant très vite(soit 10Hz), le script avec un sleep de 0.001 tourne à 300 Hz. TouOSC envoie un message toutes les 0.1 secondes en jouant très vite(soit 10Hz), le script avec un sleep de 0.001 tourne à 300 Hz.
Ligne 138: Ligne 138:
  
  
-{{tag>logiciels_de_communication}}+{{tag>logiciels_de_communication sb osc séquenceur}}
open_sound_control_osc.1531989811.txt.gz · Dernière modification : 2018/07/19 08:43 de serge