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
Dernière révisionLes deux révisions suivantes
open_sound_control_osc [2018/09/05 07:31] – [Documentation pour Blender en python] sergeopen_sound_control_osc [2021/12/13 17:25] – [Comprendre ce qu'est OSC] Benjamin Labomedia
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.   * [[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 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.
-===== Comment implémenter OSC en python ? ===== 
- 
  
 +{{ ::score.png |ossia screenshot}}
 +===== 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 93: Ligne 108:
   * [[https://github.com/sergeLabo/blenderOSC|blenderOSC sur GitHub]]   * [[https://github.com/sergeLabo/blenderOSC|blenderOSC sur GitHub]]
   * [[https://github.com/sergeLabo/pyOSCcodec|pyOSCcodec sur GitHub]] qui ne contient que code et decode   * [[https://github.com/sergeLabo/pyOSCcodec|pyOSCcodec sur GitHub]] qui ne contient que code et decode
-  * [[TapOSC|TapOSCApplication Android imitation de TouchOSC]]+  * [[TapOSC|TapOSC Application Android imitation de TouchOSC]]
   * [[https://github.com/sergeLabo/TapOSC|TouchOSC sur GitHub]]   * [[https://github.com/sergeLabo/TapOSC|TouchOSC sur GitHub]]
 ===== Des exemples entre puredata et Blender ===== ===== Des exemples entre puredata et Blender =====
Ligne 103: 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 116: 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 123: Ligne 138:
  
  
-{{tag>logiciels_de_communication sb}}+{{tag>logiciels_de_communication sb osc séquenceur}}
open_sound_control_osc.txt · Dernière modification : 2024/03/28 21:44 de Mushussu