Chargement...
 
Skip to main content

6 - Le MIDI


CARLA OSC

Bonjour à tous,
CARLA est susceptible d'être piloté par OSC, ce qui es une option très alléchante, et c'est annoncé fièrement sur la page dédiée de CARLA. Il y a également dans le soft un menu d'options pour configurer les port OSC. Seulement, le problème est qu'il n'y a aucune documentation. J'ai tenté de faire un sniffage de réseaux avec wireshark pour scruter les connexion entre CARLA CONTROL et CARLA, on y trouve des commandes OSC de maintien de la connexion, et des commande TCP, inexploitables. J'ai également exploré le code source, curieusement on y trouve un module REST, et le module OSC n'indique pas très clairement les commandes à utiliser. Et surtout, il semble utiliser OSC sur TCP plutot que UDP, drôle de choix.

Est ce que quelqu'un dispose de la documentation OSC de CARLA, ou à trouvé la solution pour contourner son abscence?
France
Bonjour ocyssau.

Il y a de l'OSC UDP et TCP.

Le TCP sert pour Carla Control pour qu'il reçoive les informations nécessaires à l'affichage notamment. C'est un bon choix dans ce cas précis, parce que l'envoi de multiples messages ne comporte pas de pertes, en effet, quand du code envoie de multiples messages en UDP à la volée, il arrive régulièrement que certains passent à l'as. Cette partie TCP n'est pas documentée dans Carla, la seule façon de la comprendre est de... fouiller le code.

Les commandes UDP sont assez rudimentaires et pas très faciles à utiliser, tu les retrouve par le menu "Help", dans la fenêtre "About Carla", onglet OSC. C'est pas l'extase, il faut repérer le numéro du greffon (en partant de 0) et le numéro du paramètre (peu être carrément très fastidieux) pour bouger la valeur d'un paramètre.
Super, merci, je n'avais pas pensé à regarder dans le menu about, j'y était presque avec mon analyse wireshark, il me manquait le fait que la valeur du paramètre doit être en décimal (1.0 par exemple).

Les commandes me semble suffisante pour mon besoins.
Juste dommage, qu'il y manque des commandes de feedback sur la position des paramètres, genre get_parameter_value, ça aurait fait un vrai + par rapport au binding midi.

Je ne trouve pas les commande OSC difficile à utiliser, la numérotation est plutôt logique et intuitive, je les intègre dans un script python que j'ai développé pour driver les différents controleur en live, et ça évite de faire le binding à chaque changement de plugins, je préfère editer mon script python.

Merci beaucoup pour votre aide.
Intéressante approche.On n'a pas grand chose sur le wiki à propos du protocole OSC. Si tu as un peu de temps, tu peux écrire un tuto pour débutant ...
France
Je sais pas si ça peut t'apporter quelque chose, j'ai moi même fait pour un setup live en projet un module qui permet de changer tous les presets d'une instance de Carla d'un coup, en utilisant le TCP. Bon évidemment, c'est à l'état de bricole et pas documenté du tout parce que c'est à usage perso. Pour le coup, avec ça je peux connaître la valeur des paramètres (et aussi les bouger par leur nom).

C'est là: https://github.com/Houston4444/PicotLiveSetup/blob/master/src/carla.py
Sympa et très interressant, ça ressemble à ce que je fais, en effet. Il me manque la compréhension des feedbacks, et comment les lire, est ce que par hasard tu aurais résolus ce problème. Après ça pourquoi pas faire une page sur OSC et python.
France
Info : il y a ça dans le wiki : OSC.
France
ocyssau écrit:
Il me manque la compréhension des feedbacks, et comment les lire, est ce que par hasard tu aurais résolus ce problème.


regarde à cet endroit : la méthode _callback

à chaque fois que le serveur TCP reçoie un message '/ctrl/cb' 'iiiiifs' ça peut être un changement de valeur de paramètre.

'iiiiifs' correspondent à action, plugin_id, value_1, value2, value3, valuef, value_str, et donc si l'action est PARAMETER_VALUE_CHANGED (5), alors value_1 est l'index du paramètre et valuef est sa nouvelle valeur.