Étape 9: Laisser Max écouter les messages entrants d’OSC et envoyez-les à partir
Maintenant, nous pouvons facilement laisser de côté l’étape ensemble Max ici (parce que nous utilisons OSCulator), mais je devine que vous êtes un chef Max et il y a un tas d’autres choses vous pouvez faire avec les messages Arduino OSC sont amusants à Max.
D’une part, nous avons quitté la plage de l’analogue de l’Arduino lire à [0.. 1023], tandis qu’un MIDI CC est un numéro de 7 bits dans la plage [0.. 127]. Si vous prévoyez de passer toute l’approche intermédiaire Max, vous pourriez vouloir changer l’échelle le nombre analogique dans le code de l’Arduino avant de les mettre dans un paquet de la CVMO. C’est simplement une question de l’utilisation de ces lignes de code :
Mais si vous suivez cette instructable, nous permettra de Max faire la mise à l’échelle à la place. Comme vous pouvez le voir dans l’image, nous envoyons deux paquets udp. La gauche, on envoie à un ordinateur avec une autre adresse ip qui écoute aussi port 5678, tandis que la droite on envoie à la machine même, mais au port 5679. Alors, quel est le problème ? Si vous voulez garder les choses simples, il suffit d’utiliser la partie droite. C’est où Max envoie une version à l’échelle des données OSC à OSCulator (à l’étape suivante). Un patch Max simplifié qui est là pour ça est collé ici :
Vous devrez changer l’adresse IP dans l’objet [udpsend] à celui de votre ordinateur exécute OSX. Le patch plus compliqué avec les deux objets [udpsend] montre comment vous pouvez facilement utiliser Max pour envoyer le même message OSC à différents récepteurs. En fait, la gauche [udpsend] a été pour mon iPad TouchOSCen cours d’exécution.
Quelques notes sur le correctif de Max :
- L’objet [regexp] analyse le paramètre du message de la CVMO. Fondamentalement, nous ignorer la part entière /analog/0 du message et ne sont intéressés par la valeur réelle. Mais vous pouvez voir comment un Max patch pourrait être bombardé de plusieurs OSC messages avec des noms différents. De cette façon, vous pouvez décider ce qu’il faut voir avec quel message, ou faire la différence entre différents potentiomètres, etc..
- L’objet [changement] gardera la quantité de données vers le bas. La boucle dans le code de l’Arduino envoie simplement le message OSC encore et encore et encore pour tous les appareils d’écoute. Vous voulez réagir aux données lorsqu’une personne tourne le potentiomètre, c’est là qu’intervient l’objet [changement].
- [grandeur] a évidemment fait la même chose que la fonction map() dans le code de l’Arduino aurait pu faire plus tôt. Il apporte de la valeur du paramètre de retour de [0.. 1023] communs CC MIDI plage de valeur [0.. 127].
- [sprintf "/ midicc42 %d"] transforme les données entrantes en un tout nouveau message d’OSC. Il s’agit juste de démontrer la puissance Max peut être comme un homme du milieu entre tous les besoins de votre OSC.