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/09/05 07:21] – [Ressources Web] sergeopen_sound_control_osc [2024/03/28 21:44] (Version actuelle) – [Comprendre ce qu'est OSC] Mushussu
Ligne 9: Ligne 9:
   * [[https://fr.wikipedia.org/wiki/Cubase|Cubase]]   * [[https://fr.wikipedia.org/wiki/Cubase|Cubase]]
   * [[https://fr.wikipedia.org/wiki/Ardour|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 19: Ligne 20:
   * [[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}}
  
  
Ligne 26: 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.+  * [[https://ccrma.stanford.edu/groups/osc/index.html|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://en.wikipedia.org/wiki/Open_Sound_Control|Wikipedia]] liste un grand nombre de logiciels qui utilise OSC en temps réel.   * [[http://en.wikipedia.org/wiki/Open_Sound_Control|Wikipedia]] liste un grand nombre de logiciels qui utilise OSC en temps réel.
   * [[http://opensoundcontrol.org/files/OSC-Demo.pdf|Un pdf]] qui compare les performances de MIDI et OSC.   * [[http://opensoundcontrol.org/files/OSC-Demo.pdf|Un pdf]] qui compare les performances de MIDI et OSC.
Ligne 40: 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 ====
  
Ligne 53: Ligne 65:
   * 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 ====
Ligne 62: Ligne 74:
 "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 77: 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 90: 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 == +=== Version python 3=== 
- +La version python 3 est [[https://github.com/sergeLabo/pymultilame/tree/master/pymultilame|OSC3.py de pymultulame]]
-Pack des fichiers du 22 juin 2011 **{{:OSC.py versions.zip|fig:OSC.py versions.zip}}**+
  
  
 ===== Documentation pour Blender en python ===== ===== Documentation pour Blender en python =====
  
-  * https://github.com/sergeLabo/blenderOSC +  * [[https://github.com/sergeLabo/blenderOSC|blenderOSC sur GitHub]] 
-  * https://github.com/sergeLabo/pyOSCcodec +  * [[https://github.com/sergeLabo/pyOSCcodec|pyOSCcodec sur GitHub]] qui ne contient que code et decode 
- +  * [[TapOSC|TapOSC Application Android imitation de TouchOSC]] 
-  * [[TapOSC]] +  * [[https://github.com/sergeLabo/TapOSC|TouchOSC sur GitHub]]
-  * [[https://github.com/sergeLabo/TapOSC|Sources sur GitHub]]+
 ===== Des exemples entre puredata et Blender ===== ===== Des exemples entre puredata et Blender =====
  
Ligne 112: 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 125: 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 132: Ligne 138:
  
  
-{{tag>logiciels_de_communication sb}}+{{tag>logiciels_de_communication sb osc séquenceur}}
open_sound_control_osc.1536132079.txt.gz · Dernière modification : 2018/09/05 07:21 de serge