Etape 14 : Logiciel - programme de traitement
Ce programme se connecte au port série de la zone de lancement, donc nous pouvons recevoir des commentaires. Il obtient les messages, décode et met en forme un message MIDI et l’envoie. Il comprend également une interface utilisateur qui vous permet de sélectionner le bon port série et la connexion MIDI. Vous pouvez jouer certains assez effrayant piano avec le clavier si vous vous connectez à la Microsoft MIDI Synth ! En tout cas, je vais vous donner un aperçu de comment le logiciel fonctionne et puis vous dire comment le configurer. Nous devons tout d’abord quelques petites choses.
Matériaux :
- Traitement des IDE
- bibliothèque de 1,0 proMIDI
- bibliothèque de controlP5
Voir l’étape précédente pour les liens
Obtenir le programme d’installation
Commencez par installer les bibliothèques. Trouver votre dossier de traitement (habituellement dans les Documents) et aller à Processing\libraries. Extraire les bibliothèques à ce dossier et vous devriez être tous ensemble (c’est le même que l’installation des bibliothèques pour Energia ou Arduino).
Comprendre le Code
Il y a certaines parties du code sans rapport avec la transformation de l’entrée du contrôleur DJ. Il s’agit de gérer le port série et les connexions MIDI ainsi que la création de l’interface utilisateur. Je ne couvrira pas ces parties du code. Voir la page pour la certaine bibliothèque en question si vous voulez une explication de comment tout fonctionne.
Les données du responsable du traitement saisit notre programme dans la fonction appelée « serialEvent. » Dans cette fonction, les deux octets distincts du message sont regroupés en un seul char de 16 bits (pas entier... parce que le traitement n’a pas les types de données non signés, consultez les commentaires de code pour plus d’informations et rodomontades). Il appelle ensuite la fonction « ParseMessage »...
ParseMessage est le point de départ pour traiter les bits que nous recevons du contrôleur. Il utilise les mathématiques au niveau du bit pour décoder le numéro d’ID et le type du contrôle qui a envoyé le message. Basé sur ces propriétés, il peut puis envoyez le message au bon fonctionnement à traiter.
Si le contrôle est un contrôle analogique, il appelle « ProcessAnalog ». Cette fonction décode la valeur 10 bits du contrôle et le transforme en une valeur de MIDI comprise entre 0 et 127. Il envoie ensuite un message de MIDI de changement de contrôle en appelant « SendControlChange ». Un changement de contrôle est un type de contrôle MIDI qui a une entrée variable au lieu d’une note, qui a un état de marche-arrêt.
Si le contrôle est un contrôle numérique, il a 3 choix dans la façon de le traiter : si le numéro est 0, ce nombre est réservé pour le clavier, donc il envoie à « ProcessKeypad ». Si le numéro d’identification est 1, ce nombre est réservé pour le codeur rotatif donc il envoie à « ProcessRotary ». Si le numéro d’identification n’est pas de ces valeurs réservées, il le traite comme une entrée numérique générale (aka bouton) en envoyant le message à « ProcessDigital ».
ProcessKeypad décode quelle touche a été enfoncée, son état de marche/arrêt, le mode qui a été choisi à l’époque et le pont qui a été choisi à l’époque. Il envoie ensuite une note MIDI basée sur cette information. Le numéro de note MIDI est calculé à l’aide d’un algorithme spécial qui donne à chaque combinaison une valeur de note unique.
ProcessRotary décode ce qui est la valeur du message et si le bouton intégré a été poussé tandis que la molette est sous tension. Le valeurs vont de 0 à 2, 0, sens de rotation vers la droite, rotation vers la gauche 1 sens et 2, ce qui signifie un double-clic (utilisé pour le chargement des titres à platine choisie). Le foret superspeed est défini à 1 si le bouton intégré a été poussé vers le bas tout en tournant, et si elle a été enfoncée vers le bas, le programme envoie 10 messages MIDI. Étant donné que la molette est destinée à être utilisé pour parcourir une bibliothèque, cela permet faire défiler plus rapidement les chansons.
ProcessDigital décode tout simplement le dernier morceau dans le message et qui indique s’il faut envoyer un sur ou un message MIDI off pour la note spécifique associée à ce contrôle.
Pour plus d’informations concernant le protocole utilisé dans ce projet, consultez la première étape dans la section Firmware.
Exécution du Code et la configuration du logiciel
Maintenant que vous comprenez le code, permet d’obtenir à courir !
Vous remarquerez que lorsque vous ouvrez premier traitement il est presque identique à Energia. Elles reposent sur la même chose sorte de (câblage, je crois). Cela rend super intuitive pour commencer ! Copier et coller mon code dans la fenêtre de l’éditeur et cliquez sur le bouton lecture dans le coin supérieur gauche ("Run").
Une petite fenêtre devrait apparaître qui a deux menus déroulants et trois boutons. Ces contrôles vous permettent de sélectionner quelle sortie MIDI pour se connecter à et quel port série d’entrée à l’écoute. Le bouton Actualiser permet d’actualiser les listes si vous débranchez/prise dans votre tableau de bord ou une connexion MIDI. Pour nos besoins, raccorder la ligne de MIDI Out à loopMIDI (Windows) ou le port MIDI virtuel, vous avez créé plus tôt (Mac/Linux). Branchez dans le contrôleur et le port série sur le port série auquel le contrôleur est sur. Il devrait être celui que vous avez utilisé avec Energia. L’entrée de votre contrôleur MIDI devrait atteindre maintenant tout ce qui est connecté à l’autre extrémité de votre port MIDI virtuel.