Receiving midi message

Bonjour. Je me suis mis à Open Stage Control depuis 2 jours, j'arrive à envoyer des messages midi avec des scripts sans problème vers ma machine (Boss RC600), y compris des messages d'horloge, mais je bute sur un problème peut-être tout simple . Je n'arrive pas à analyser les messages entrants , il me manque la fonction receive qui n'est pas implémentée, et je n'arrive pas à installer de "custom-module" (message d'erreur au lancement) Que faut-il faire ?
(Sorry if bad English) : I can't receive midi messages . It seems that the "receive" function is not available and I am unable to install custom modules. What is wrong ?
Thanks.

Il n'y a pas de fonction à appeler pour recevoir un message, les widgets reçoivent automatiquement les messages qu'ils sont capable d'envoyer selon les valeurs entrées dans les propriétés target, address et preArgs. En revanche l'envoi de message via les scripts d'un widget (par exemple onValue) ne permettent pas de déterminer les messages qu'il peut recevoir. (Voir réception des messages)

Concernant les custom modules (qui nécessitent de se plonger un peu dans le langage javascript), il me faudra plus d'information pour t'aider (message d'erreur, description plus précise de ce que tu as tenté et de ce que tu souhaites faire).

Merci pour cette réponse .
Ce que j'essaye de faire entre autres , c'est de récupérer l'horloge midi émise par mon appareil afin de retrouver et d'afficher le tempo qu'il émet. J'ai réussi à le faire sous TouchOSC mais la précision n'est pas complètement satisfaisante (à cause peut-être de la simplification du Lua implémenté, ou peut-être de mon incompétence.:-))
Toujours est-il qu'avec Open Stage Control,dans l'autre sens j'arrive à émettre (commande send) en tant que sysex des messages 'F8' , 24 par noires, avec une précision acceptable pour fixer le tempo ! Mais dans l'autre sens, pour récupérer le tempo de l'appareil, ça ne marche pas ! La commande receive est-elle la bonne ? Elle ne semble pas implémentée (message "receive is not defined") (je vois bien ces messages arriver sur la console du serveur (debug true)

J'ai donc tenté d'implémenter des custom modules sur le serveur, et je suppose que c'est là que j'ai manqué quelque chose : J'ai récupéré les fichiers callback.js ou custom-module.js, mais quand les ai chargés , le serveur démarre avec des erreurs :
ERROR) Custom module loading error
E:\Downloads\open-stage-control_1.24.0_win32-x64\resources\app\server\callbacks.js:8

^

SyntaxError: Unexpected token '<'
at new Script (node:vm:100:7)

Voilà , voilà merci d'avance pour tes explications.

La fonction receive n'existe pas pour les widgets comme expliqué plus haut, si tu veux qu'un widget reçoive les messages sysex par exemple, tu dois créer un widget (de type "script" par exemple) avec address = /sysex et target = midi:nom_du_port_midi_d_arrivée, tu pourras alors traiter les valeurs arrivant à cette adresse avec la propriété onValue du widget.

L'utilisation d'un custom module passe par le fait d'en écrire un soi-même, il ne s'agit pas de charger un des fichiers sources du logiciel comme ceux que tu cites, il y a pas mal d'exemple sur le forum qui pourront te donner une idée du fonctionnement et des possibilités de cette fonctionnalité (qui comme je le disais requiert d'apprendre un peu la programmation en javascript).

Ok super , c'est très clair, j'essaye ça tout de suite ! Je comprends l'anglais mais ce n'est pas ma langue maternelle , j'ai du mal décoder certaines infos dans le paragraphe custom module :

receive(host, port, address, ...args, options) #

Send osc/midi message to connected clients. host and port can be specified to simulate a specific origin for the message.

Merci pour ta patience envers un jeune retraité qui se met au javascript !

Si c'est les ...args c'est du javascript. Syntaxe de décomposition - JavaScript | MDN
Spread operator

L'idée générale du custom module est d'avoir une sorte de boite noire qui filtre tous les messages entrants et sortants d'open stage control. Il y a quelques exemples d'utilisation des fonctions décrite dans la documentation de cette fonctionnalité. Je n'ai malheureusement pas trop le temps de faire un cours complet sur le sujet d'autant qu'une partie de la difficulté réside dans le fait qu'il faut apprendre les bases du javascript pour pouvoir écrire son propre module et qu'il y des ressources pédagogiques sur le sujet sur internet d'une meilleure qualité que ce que je pourrais produire.

Pour lever à minima la confusion que je crois déceler dans ton message : on n'utilise pas receive() pour choisir quel message on veut traiter, cette fonction sert à simuler un message reçu pour l'envoyer directement aux clients (qui sont le ou les navigateurs / fenêtres affichant la session / les widgets). Tous les messages entrants (non générés par receive) passent d'abord par le custom module (fonction nommée "oscInFilter"), on peut alors exécuter diverses tâches selon le contenu des messages et laisser passer ou non le message vers les clients.
De la même manière, tous les messages envoyés par les clients (en général, par les widgets), passent d'abord par le custom module (fonction "oscOutFilter") avant d'être envoyés vers leur(s) destination(s), et la même logique de filtrage que pour les message reçus s'applique.

Merci encore pour ces explications . J'avais utilisé send et je m'étais imaginé que receive faisait l'inverse. Entre temps, je suis parvenu à mes fins, c'est à dire récupérer l'horloge midi de mon appareil pour l'afficher (et à l'inverse, l'envoyer à l'aide de 24 messages "F8' ). Il me reste à optimiser le code pour optimiser la précision du résultat.
Merci encore !