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]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

calixtus06, 14:33, jeu. 28 mars 2024: Bonjour et bienvenue à b.vl :-)
calixtus06, 09:30, mer. 27 mars 2024: Bonjour et bienvenue à Noar :-)
olinuxx, 18:50, lun. 25 mars 2024: Bonjour et bienvenue à Ted Demore cool
olinuxx, 17:52, dim. 24 mars 2024: Bonjour et bienvenue à Noitavon cool
calixtus06, 11:07, jeu. 21 mars 2024: Bonjour et bienvenue à obds, ceric :-)
obds, 16:12, mar. 19 mars 2024: Cet édito est juste parfait. Trop beau !
olinuxx, 11:48, ven. 15 mars 2024: Bonjour et bienvenue à Jerry cool
calixtus06, 18:03, mer. 13 mars 2024: Bonjour et bienvenue à tanguero :-)
olinuxx, 11:01, dim. 10 mars 2024: Bonjour et bienvenue à lolo cool
bda, 16:59, sam. 09 mars 2024: Chapeau pour l'édito. Vous êtes au top les gars :-)
allany, 07:20, jeu. 07 mars 2024: Ça ne fait jamais de mal, c'est l'éditorial ! [Lien]
olinuxx, 19:52, mer. 06 mars 2024: Bonjour et bienvenue à TrkNrk cool