Vince Posté(e) le 30 mai 2014 Signaler Partager Posté(e) le 30 mai 2014 Bonjour à tous, Je souhaiterai savoir si il y a possibilité avec la HC2 de récupérer un flux UDP multicast.Une idée farfelu m'est venu et donc mon but, ici, est de contrôler via un piano numérique MIDI, branché sur mon ordi, les paramètres couleurs du contrôleur RGBW.J'ai, sur mon système Ubuntu, trouvé une appli "qmidinet" qui permet de faire une diffusion UDP multicast des informations MIDI du clavier. Pas de problème pour "écrire" sur le socket UDP (Merci au passage à Krikroff pour son code de ping qui m'a bien aidé) : local _deviceIp = "192.168.0.2"; -- adresse ordinateur local _devicePort = 21928; -- port multicast socket = Net.FUdpSocket(); socket:setBroadcast(true); --send packet local bytes, errorCode = socket:write("Je peux écrire", _deviceIp, _devicePort); --check for error if errorCode == 0 then return true; else return false Le code me retourne bien "true", donc pas de problème pour l'écriture. La question est : comment faire pour "lire" le flux ? (du genre le "socket:read" en tcp) Merci d'avance pour votre aide ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Krikroff Posté(e) le 9 juillet 2014 Signaler Partager Posté(e) le 9 juillet 2014 Salut Vince, j'étais passé à côté de ton post tu peux faire un truc dans le genre... readSocket = function(socket) local err, len = 0, 1; local buffer, data = "", ""; while (err==0 and len>0) do data, err = socket:read(); len = string.len(data); buffer = buffer..data; end return buffer, err; end j'utilise cette technique dans la lib tk.Net.* de mon framework LUA Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vince Posté(e) le 10 juillet 2014 Auteur Signaler Partager Posté(e) le 10 juillet 2014 Bonjour, Merci pour ta réponse. En fait j'ai fait autrement... Un programme en python pour récupérer le flux midi. Du PHP pour calculer la couleur à partir des données midi et un accès à la fonction du changement de couleur du ruban de Leds avec la HC2 ! Le tout fonctionnant à merveille et est très apprécié Lien vers le commentaire Partager sur d’autres sites More sharing options...
Krikroff Posté(e) le 11 juillet 2014 Signaler Partager Posté(e) le 11 juillet 2014 Super !!! Et c'est juste pour le plaisir ou il y a une application pratique ? Peut être des idées àprendre pour recycler un vieux clavier maître Envoyé de mon iPhone àl'aide de Tapatalk Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vince Posté(e) le 11 juillet 2014 Auteur Signaler Partager Posté(e) le 11 juillet 2014 Alors oui, c'est juste pour le plaisir. Un défi personnel de faire varier les couleurs et l'intensité suivant les notes jouées (et leur vélocité). Le principe c'est que seules les notes jouées en basse (1er et 2eme octave) fassent varié la couleur. Les autres notes ne font variées que l'intensité (+ il y a de notes et plus elles sont jouées fortes => + l'intensité est forte ). Pour les couleurs : Elles vont du rouge pour le 1er Do au rouge pour le Do de l'octave suivante. L'astuce a été de reprendre mes cours de trigo (le principe de la roue chromatique) pour calculer les notes intermédiaires pour faire passer : rouge => vert puis du vert => bleu et enfin du bleu => rouge. Après quelques heures (..jours) de prises de tête (par ex : garder le flux des notes maintenues et lesquelles sont relâchées, la vélocité, l'ajout de couleur entre note...etc), le résultat est bien sympa et le tout est très appréciée par la gente féminine Lien vers le commentaire Partager sur d’autres sites More sharing options...
Moicphil Posté(e) le 11 juillet 2014 Signaler Partager Posté(e) le 11 juillet 2014 C'est trés original ! Quid de la réponse pour récupérer le flux midi ? C'est réactif ? Peut être une vidéo pour se rendre compte ? En tout cas, bravo pour cette fonction... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vince Posté(e) le 11 juillet 2014 Auteur Signaler Partager Posté(e) le 11 juillet 2014 Pour le flux midi c'est donc un programme en python : #!/usr/bin/env python import sys, pygame, pygame.midi, urllib2, urllib # set up pygame pygame.init() pygame.midi.init() for x in range( 0, pygame.midi.get_count() ): print pygame.midi.get_device_info(x) inp = pygame.midi.Input(5) # 5 est l'identifiant de mon midi IN while True: if inp.poll(): some_url = "http://localhost/sites/all/modules/domotique/midi/midiover.php?values="+urllib.quote_plus(str(inp.read(1000))) content = urllib2.urlopen(some_url).read(); print(content); pygame.time.wait(100) #un peu plus que l'exemple pour laisser le ruban reagir ! Voici la source pour plus d'explication. Au niveau réactivité , c'est pas trop mal, même si ce n'est pas instantané (une demi seconde environ) du à la réactivité du fibaro RGBW controller et surtout du ruban led. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés