Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

7 - Développer/Traduire/Documenter/Annoncer une application

Dernier post

OSC Ardour RESOLU

aletheia utilisateur non connecté France
Je travail sur une appli qui doit piloter Ardour avec OSC.
J'utilise Liblo pour OSC. Ex :

int sendOSCMessage(){
       lo::Address a("localhost", "3819");
       a.send("/strip/fader", "if", 1, 0.4);      
 return 0;
}

Pas de soucis, cela fonctionne.

Si je lance oscdump sur le port 8000 dans un terminal et que je fais
oscsend 127.0.0.1 3819 /strip/list dans un autre terminal, j'obtiens en dump :

#reply ssiiiiii "MT" "MIDI" 0 36 1 0 1 0
#reply ssiiiiii "MT" "MIDI 3" 0 8 1 0 2 0
#reply ssiiiiii "MT" "MIDI 1" 0 36 1 0 3 0
#reply ssiiiiii "MT" "MIDI 2" 0 64 1 0 4 0
#reply ssiiiiii "AT" "Audio" 18 18 1 0 5 0
#reply ssiiiiii "AT" "Audio 1" 2 8 0 0 6 0
#reply shhi "end_route_list" 48000 10944593 0


ce qui est conforme.

Comment puis-je récupérer ces infos, ou tout autre feedback d'Ardour, en utilisant Liblo dans mon code?

Par ailleurs, Ardour peut-il retourner les valeurs de ses réglages : slader par exemple?


Merci

jpcima utilisateur non connecté France
Il faut que tu instancies un serveur liblo, et que tu lui associes des méthodes qui répondent au message réponse que ardour émet.

Je lis l'en-tête de la bibliothèque liblo (en C) et j'y trouve un exemple que voici, qui montre le procédé d'envoi-réponse.
* serv = lo_server_new(NULL, err);
 * lo_server_add_method(serv, "/reply", "ss", reply_handler, NULL);
 * lo_send_from(t, serv, LO_TT_IMMEDIATE, "/foo/bar", "ff", 0.1f, 23.0f);


Avec "/reply" et "ss" la signature de la méthode, mais toi ce sera autre chose sans doute, d'après la sortie de oscsend.
Aussi c'est possible de définir une méthode "attrape-tout" en passant des NULL, ce qui est pratique afin de recevoir tout message qui arrive.

Enfin ça ne suffit pas tout à fait pour que cela fonctionne, il faut aussi que tu fasses tourner la réception de message du serveur dans une boucle, par exemple à l'aide d'une tâche dédiée (thread). voir "lo_server_wait"
Ceci permet de mettre en marche les callback ("reply_handler").

aletheia utilisateur non connecté France
Euh La!!! J'ai un peu l'impression qu'on me parle chinois. Je vais réfléchir à la bête!!!
Merci pour ta réponse.

aletheia utilisateur non connecté France
Bon. De retour.
J'avais un problème avec Liblo qui m'envoyé un message d'erreur lors de la compilation d'un serveur en raison d'un set_callbacks non reconnu.
J'ai recompilé liblo et j'ai fait un petit test à partir de l'exemple du serveur pour c++ :

int argc, void *data, void *user_data);
lo::ServerThread st(8000);
    if (!st.is_valid()) {
        std::cout << "Nope." << std::endl;
        return 1;
    }
st.set_callbacks([&st](){printf("Thread init: %p.\n",&st);},
                     [](){printf("Thread cleanup.\n");});

std::cout << "url: " << st.url() << std::endl;
 std::atomic<int> received(0);
 st.add_method("/strip/gain", "if",
                  [&received](lo_arg **argv, int)
                  {std::cout << "/strip/gain (" << (++received) << "): "
                             << argv[0]->i<<" arg:" << argv[1]->f  << std::endl;});

    /*
     * Start the server.
     */
    st.start();


et là, merveille lorsque je fais dans un terminal :

oscsend 127.0.0.1 3819 "/strip/gain" if 2 -56.02

Ardour me positionne bien le gain de la piste, que je récupère également comme retour dans mon serveur.

/strip/gain (232): 3 arg:-1.00114 par exemple

De même, Ardour me communique bien les réglages du volume de mes pistes.
je considère donc le problème résolu, même s'il reste beaucoup à faire.

Cordialement

olinuxx utilisateur non connecté France
Chouette que tu aies trouvé une solution.

Note modération : le sujet étant résolu, merci d'ajouter un [RÉSOLU] (ou un [CONTOURNÉ], ou bien encore un [ABANDONNÉ]) dans le titre de ton premier message. Voir ce paragraphe du manuel du site pour davantage d'informations.



Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

olinuxx, 02:21, lun. 17 Jun 2019: Bonjour et bienvenue également à madguitar cool
olinuxx, 15:54, dim. 16 Jun 2019: Bonjour et bienvenue à lafissure cool
sub26nico, 23:59, sam. 15 Jun 2019: Salut et bienvenue à ikerino59 :-)
sub26nico, 22:24, jeu. 13 Jun 2019: Salut et bienvenue à rankxerom :-)
Sasaki, 14:49, mer. 12 Jun 2019: Inspirations sportives [Lien]
Nolwen, 17:36, dim. 09 Jun 2019: Sortie de LMMS 1.2.0 ! [Lien]
sub26nico, 11:41, sam. 08 Jun 2019: Salut et bienvenue à dewiweb :-)
sub26nico, 20:26, ven. 07 Jun 2019: Yo Zebassprophet :-)
zebassprophet, 16:21, ven. 07 Jun 2019: yoooooooooooooooo les amis
sub26nico, 21:38, jeu. 06 Jun 2019: Salut et bienvenue à Texas Barbudos :-)
sub26nico, 23:08, mer. 05 Jun 2019: Salut et bienvenue à jojopigama et Roger-Luc :-)
allany, 09:18, mer. 05 Jun 2019: Et voilà l'édito du mois ! [Lien]