Bonjour a tous,
Je cherche a faire un convertisseur OSC vers Midi
J'utilise Osculator sur mac, mais j'ai besoin de faire pareil sur un PC, et j'avoue je suis un peu perdu
Voici les 2 programme PD que j'ai deja fait
Test 1
Test2
Le premier marche bien, mais je suis obligé de créer une commande de noteout pour chaque boutons de mon appi
Petit problème, j’ai une note qui se déclenche quand j’appuie sur un bouton , mais aussi quand je le relâche
Mon test 2 est une tentative de création automatique de la note midi en fonction du bouton utilisé
Idéalement je voudrais utilisé la valeur après le "/" dans le chemin du nom de mon bouton pour générer le numero de notes midi
Pensez vous que cela soit réalisable?
Et comment faire pour que le bang ne réagisse que lorsque j’appuie sur un bouton?
Merci d'avance pour l'aide
Hors ligne
Pour utiliser le "1" de "/1", tu peux faire comme ceci
Mais dans l'idéal, j'irais modifier (si possible) le code qui créé ton message OSC pour que tu reçoives "/sppc/push 1" au lieu de "/sppc/push/1".
Hors ligne
J'ai bien avancé aujourd'hui
Voici mon nouveau script qui fonctionne
Si vous voyez des choses a optimiser?
Hors ligne
Merci Dawn, je test demain , ça va simplifié le code
Hors ligne
ah oui, pas mal le [splitlinefilename /], dwan... et encore mieux le [s2l] avec séparateur "/", Sammy (personnellement et par réflexe, j'aurais passé le symbole en asciii, le temps de dégager le slash)
Bon, j'ai refait le dernier patch.... en moins "foufou bordélique" :
Mais j'imagine que tu reçois 1 quand tu presses, et 0 quand tu relâches, un peu comme avec une touche midi finalement... alors autant faire correspondre directement la durée de la note à celle de la "pression", en multipliant 1 ou 0 par la vélocité (127), ça donnerait ceci, toujours sur le canal 10 :
Dernière modification par Nicolas Lhommet (2015-02-18 20:29:50)
Hors ligne
D'oh, j'avais pas calculé qu'on pouvait [s2l /]... Du coup le [splitfilename /] suivi de [s2l] c'est un peu ridicule :p
Mais tant que le schmilblick avance
Dernière modification par dwan (2015-02-18 21:37:45)
Hors ligne
Merci beaucoup Nicolas
Je me penche la dessus dés demain. Je pense que ça va m'ouvrir de nouvelle interrogations
Je serais curieux de voir comment tu ferais en ASCII ...
C'est exactement ça pour le 1 quand on appuis et le 0 quand on relâche
J'aime beaucoup l'idée de multiplier par 127 pour définir la vélocité , ça simplifie tout!
Hors ligne
Et voila un bon patch fonctionnel
En sortie du s2l j'ai une liste avec m'a valeur de bouton et un 0
J'ai changé le dernier [pack] par un [unpack] et j'injecte la vélocité directement
Cela me limite a 128 boutons, je vais essayé de rajouter une partie qui modifie le canal midi tout les 128 valeurs
Il me manque aussi quelque chose pour que ça devienne aussi fonctionnel que Osculator
Dans mon app sur mon iphone, osculator envoie l'adresse ip et le port du serveur creer
On peut réussir a faire ça avec Pure Data?
Hors ligne
Bon comme ca marchait tres bien et que c'etait propre je me suis senti obligé de foutre le bordel...
Maintenant le canal varie de 10 a 14 , donc 640 boutons possible, largement suffisant
Mais le patch est redevenu bordélique
Hors ligne
Tu DOIS utiliser un [trigger bang bang] pour envoyer tes bangs dans l'ordre au [pack] sinon, selon l'ordre dans lequel tu as patché (et qu'on ne peut deviner), certaines notes pourraient être packées avec le canal de la note précédente.
Hors ligne
Merci Dawn
J'ai eu le problème , du coup j’avais fait attention a l’ordre pour patcher
J’avais oublié qu'il existait les trigger pour ça
Par contre je vois pas comment utiliser un [trigger bang bang] dans mon cas, j'ai fait 5 [trigger float bang] ...
Hors ligne
oui pardon, je n'avais pas vu que tu utilisais des boîtes [float].
[t f b] c'est exactement ce qu'il te faut !
Hors ligne
Sammy a écrit:
Et voila un bon patch fonctionnel
...
J'ai changé le dernier [pack] par un [unpack] et j'injecte la vélocité directement
Effectivement, mon dernier [pack f f] (à part pour un beau rangement) n'était pas indispensable, mais (vu que tu sembles ambitionner de devenir un "ninja du tissage" qui utilise le moins de boîtes possible) pourquoi laisser traîner ce [unpack f] ? "unpack" sert à dissocier des éléments groupés, mais dissocier un groupe de 1... je vois pas trop
Ton dernier patch est parfaitement "fonctionnel" mais voici pour toi, "petit scarabée" :
Oui je sais, c'est facile... mais moi aussi, je suis nul en maths, et je crois que tu gagnerais à étudier, même brièvement, le fonctionnement de CHAQUE objet de base ("vanilla") présentés dans :
menu Aide -> Navigateur d'aide -> Pure Data -> 5.reference -> intro-help.pd
et pourquoi pas, relire tout le chapitre 2 (le passage obligé des débutants), en particulier "03.connections.pd".
Dernière modification par Nicolas Lhommet (2015-02-19 17:18:06)
Hors ligne
Merci encore Nicolas
Les modo... je savais que j'aurais du écouter les cours d’algèbre au lycee
Tu as raison, je me lance un peu dans la bataille sans avoir les bases... Je vais approfondir tout ça
Pour mon histoire de rentre "le serveur détectable", il me semble qu'il faut utiliser le protocole bonjour
J'ai trouver ca :https://github.com/bonemurmurer/simplebonjour
J'ai pas encore compris comment on rajoute une library a Pd, oui je part de loin... :-(
Hors ligne