Créer une interface avec processing pour controller puredata avec votre smartphone android

Tout d'abord téléchargez la dernière version de Processing sur https://processing.org/download

Installation processing sous Gnu/linux et des librairies nécessaire

ouvrir un terminal et entrer les commandes suivantes :

cd /home/apodio/Downloads
ls
cd processing-3.5.4
ls
sudo sh install.sh

Ouvrez le programme. En haut à droite on peut voir un onglet écrit “Java”. Cliquez dessus et sélectionnez “ajouter un mode”. Une deuxième fenêtre s'affiche, installer « Android mode » : vous pouvez maintenant alterner entre les modes « Java » et « Android ».

vous devez maintenant installer Android-studio : https://developer.android.com/studio#downloads

ouvrir un terminal et entrer les commandes suivantes dans le répertoire d'Android Studio : “Create Desktop Entry”

cd /home/apodio/Downloads
ls
cd android-studio/
ls
cd bin
ls
sudo sh studio.sh

puis suivre les indications (prendre tout par défaut) Ensuite l'interface d'Android Studio s'ouvre et en bas à droite vous avez un onglet Configure, choisir

Revenir à Processing et choisir le dossier Android qui a été crée sur votre ordinateur, contenant un fichier SDK.

Si vous êtes sur Windows il est important d'installer « google usb » dans Android studio.

Sur votre téléphone Android

vous devez effectuez le « debugging usb ». Attention, depuis la version 4.2 d’Android, le menu Options de développement n’apparaît plus par défaut dans les options de paramétrage, pour cela:

Ouvrez les paramètres

Système

« About phone »

Appuyez 7 fois sur « Build number » : vous êtes maintenant développeur

Revenez à la page précédente et sélectionnez « Développer options »

Activez « Usb debugging »

Ensuite branchez votre appareil en USB sur l'ordinateur. Si le fichier SDK est correctement installé, vous devriez le voir apparaître dans Processing, dans l'onglet « Android » puis « Devices ». Attendre une demande d’autorisation sur votre téléphone pour le mode debugging.

Toujours dans processing, allez sur l'onglet outil et sélectionnez « ajouter un outil ». Une nouvelle fenêtre s'ouvre, dans celle-ci cliquez sur l'onglet « libraries », c'est ici que vous allez ajouter les éléments nécessaire à faire fonctionner le code :

- OSCP5 : librairie permettant d'envoyer et recevoir des informations entre plusieurs logiciels/ordinateurs

- controlP5 : permet la création de fader, bouton, potard ,…

Il vous faut ensuite télécharger le logiciel purr-data à cette adresse : https://puredata.info/downloads/purr-data

Pour vérifier que la librairies est bien monté, ouvrir purr-data et ajouter l’objet routeOSC s’il n’est pas en pointillé c’est que la librairie mrpeach est bien monté.

Entrez le code suivant dans processing :

import oscP5.*;
import netP5.*;
import controlP5.*; //librairies nécessaire à notre programme
ControlP5 controlP5;
Knob myDial;
OscP5 oscP5;
NetAddress myRemoteLocation;
int knobValue = 127; //valuer que nous allons donner à notre bouton
//void setup est la partie où nous initialisons notre code avant de le faire tourner
void setup() {
fullScreen();
orientation(PORTRAIT); //plein écran en mode portrait
smooth();
frameRate(60); //vitesse à laquelle l 'écran s'actualise (ici 60 images / seconde)
//création d'une nouvelle instance oscP5, c'est ce qui va nous permettre de communiquer avec pd
oscP5 = new OscP5(this, 12000 ); //le port 12000 est celui sur lequel le routeur écoute
myRemoteLocation = new NetAddress("...", 12000); //adresse ip et port d’envoi
controlP5 = new ControlP5(this); //création d'un nouveau controller
myDial = controlP5.addKnob("knobValue",0,127) //ajout d'un bouton et de sa valeur min et max
.setPosition(150, 500)
.setSize(400, 400); //définition de sa taille et sa position
}
void draw() {
background(0); // couleur de fond de votre écran
println(knobValue);//affiche la valeur de votre bouton dans purr data
}
// c'est ici que se passe l'envoi du message
void mousePressed() {
OscMessage myMessage = new OscMessage("/potard3"); //on donne ici un nom à notre message
myMessage.add(knobValue); // on lui donne ici une valeur (contenu du mail)
oscP5.send(myMessage, myRemoteLocation);
//on dit ici envoie le message à l'adresse que nous avons définie plus haut.
}

Dans le code, à la place des trois petits points il faut entrer son adresse Ip. On peut trouver cette dernière dans les paramètres de connexion de l'ordinateur.

Vous devez aussi ajouter un port, prenez celui que vous souhaitez pour l'instant (ex : 8800, 9997, 12000…).

Pour les premiers tests, il est préférable que le téléphone soit connecté au même wifi que l'ordinateur.

Dans Processing, allez dans “sketche permission” se trouvant dans l’onglet “Android”, il est important d’ajouter l’option “ACCESS_NETWORK_STATE”.

Après avoir copié le code dans Processing, vous devez appuyer sur le bouton Play en haut à gauche. Si un message d'erreur s'affiche disant qu'il faut accepter la licence du fichier SDK, ouvrez Android studio et aller dans « tools » puis « SDK manager » et télécharger une version antérieure de la plateforme SDK, ensuite acceptez les conditions d'utilisations de la licence.

Sur le téléphone, l'application devrait maintenant apparaître.

Pour trouver le fichier .APK il faut aller voir dans la console de Processing où il est écrit qu'un nouveau dossier à été créé ==⇒ Build folder : emplacement du dossier Ensuite allez dans “App”, puis “Build”, puis “Outputs”, puis “APK”, puis “Debug”. Le fichier .APK servira ensuite à télécharger l’appli sur un autre appareil Android. Il faut bien penser à donner l’autorisation pour le téléchargement car le téléphone se méfie si l’appli ne provient pas du store android.