ORCA to Cardinal
Posted by Sébastien Dupire in Développement
Il n'y a pas longtemps, j'ai découvert un soft pour la MAO que j'ai trouvé vachement sympa. Il s'agit de Orca, un séquenceur modulaire qui se manipule avec des caractères alphanumériques.
Il est assez perturbant par sa syntaxe mais il permet notamment de s'interfacer
- avec du MIDI
- avec de l'OSC
- avec un petit synthé via UDP de la même équipe, nommé Pilot
Je vous recommande chaudement la présentation de MakingSound.fr qui démontre bien les possibilités de ce couple Orca - Pilot.
La connectivité m'intéressait grandement, et tout naturellement, je me suis demandé si on pouvait piloter une instance de Cardinal, le synthé modulaire équivalent de VCV Rack en open source. Si vous ne connaissez pas, tentez la version Live directement sur le site. Il vaut vraiment le coup de s'y intéresser.
...Et bien, la réponse est oui, via le protocole OSC.
Et si on connectait tout ca ?
Le soucis du protocole Open Sound Control, est qu'il tellement ouvert qu'il faut savoir où aller, savoir s'il faut faire de l'UDP ou du TCP ... ou autre chose. Car contrairement au MIDI, ce protocole n'impose rien en terme de contenu ou de transport des données. Uniquement le format des messages est normé. Alors, il y a une page dédiée mais ce n'est pas évident à suivre surtout quand on débute avec Cardinal.
Néanmoins, j'ai vu via l'adresse /host-params suivi d'un numéro de port et de sa valeur entre 0 et 10 (commande CV classique) qu'on pouvait agir sur les sorties CV du module Host Param. Du coup, il suffit d'interprêter des commandes OSC issues de Orca, pour les transformer en instructions compréhensives pour Cardinal.
Pour cela, j'ai fait le projet suivant : orca2cardinal
En gros, c'est un simple proxy OSC pour établir le lien entre Orca et Cardinal. En prime, je lui ai ajouté un serveur Websocket afin de permettre de remonter les instructions à une page Web en parallèle. Comme ca, si l'envie me prend de faire des visuels Javascript animés selon les instructions, bahhh, je pourrais via les Websockets en écoutant les events.
Tout est détaillé dans le repository du projet. Si vous avez des questions, n'hésitez pas à me contacter (Mastodon ou email)
Autres références
Le copier-coller est votre ami. Il suffit pour cela de copier l'URL de votre browser et de le coller dans votre réseau social préféré.
Vous ne vouliez quand même pas un bouton pour faire une tâche aussi simple, non ?