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:28] – [pyOSC une implémentation simple de Open Sound Control en Pure Python] 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==== 
 +  * **[[kivy_oscpy|]]** 
 +En 2020, ce projet fait partie du projet Kivy: laisser tomber tout le reste, utilisez ça !
 ==== liblo ==== ==== liblo ====
  
Ligne 72: 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 87: Ligne 100:
 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]] 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]] La version python 3 est [[https://github.com/sergeLabo/pymultilame/tree/master/pymultilame|OSC3.py de pymultulame]]
  
Ligne 93: Ligne 106:
 ===== 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 106: 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 119: 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 126: Ligne 138:
  
  
-{{tag>logiciels_de_communication sb}}+{{tag>logiciels_de_communication sb osc séquenceur}}
open_sound_control_osc.1536132504.txt.gz · Dernière modification : 2018/09/05 07:28 de serge