Renoise peut être piloté par des commandes OSC.
Une quarantaine de fonctions sont disponibles de base, pour modifier des paramètres telle que la vitesse d'exécution (battements par minute), le mode d'édition, la mise en route du métronome ou encore envoyer des commandes MIDI.
Utilisation
Configuration de Renoise
OSC est un protocole de communication : il permet d'envoyer des messages d'une application à une autre.L'application qui reçoit les commandes est un serveur, ici c'est Renoise, et l'application que les envoie est un client.
Pour activer le serveur OSC dans Renoise :
- ouvrir le menu Edit > Preferences
- choisir la rubrique OSC
- et cocher la case Enable Server
Par défaut le protocole UDP est sélectionné et le port 8000 utilisé. Ces deux paramètres devront être fournis au client pour qu'ils envoie les commandes à la bonne adresse. Vous pouvez conserver cette valeur sauf si une autre application utilise déjà ce port sur votre ordinateur, .
Exemple de client avec pyliblo
Le paquet pyliblo s'appelle python-liblo sur ma distribution Linux. Après installation, il est possible d'écrire un mini-client OSC en quelques lignes de Python :import liblo import sys # configuration du client OSC try: # on vise le serveur sur le port 8000 target = liblo.Address(8000) except liblo.AddressArror, err: # affichage et fin du script en cas d'erreur print str(err) sys.exit() # envoi de la commande : /renoise/song/bpm(120) liblo.send(target, "/renoise/song/bpm", 120)
Exemple de client avec liblo
Pour utiliser liblo dans un programme C, il faut installer le paquet liblo-dev :#include <stdio.h> #include <lo/lo.h> int main(int argc, char *argv[]) { // on vise le port 8000 lo_address t = lo_address_new(NULL, "8000"); // envoi de la commande : /renoise/song/bpm(120) if (lo_send(t, "/renoise/song/bpm", "i", 120) == -1) { printf("OSC error %d: %s\n", lo_address_errno(t), lo_address_errstr(t)); } return 0; }
Résultat
Si la commande est bien parvenue au serveur Renoise, une ligne apparaît dans la liste ("/song/bpm with 1 arguments") :
et la nouvelle valeur est prise en compte immédiatement dans l'interface :
[+]