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:31] – [Documentation pour Blender en 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.
-===== 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 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.1536132699.txt.gz · Dernière modification : 2018/09/05 07:31 de serge