Script de traitement avec le MIDI (8 / 12 étapes)

Étape 8: Quel est ce canal ?

Étant donné que le tirage au sort ne fait pas beaucoup l’action réelle doit être le cas ailleurs. En effet, c’est les méthodes de gestion note qui animent ce qui est vu. Quand un message MIDI arrive il obtient expédié à un gestionnaire de note correspondant s’il en existe. J’ai décidé que je voulais être en mesure de générer des modèles, tels que remplir une grille de 4 x 4 avec images note par note. J’ai écrit un gestionnaire remarque qui fait ceci pour le côté gauche de la fenêtre de dessin et pensé qu’il serait bien de faire la même chose du côté droit, mais inversé.

Dans un premier temps je l’ai fait en utilisant deux gestionnaires de note différente, pensant que j’utiliserais une octave pour les choses se passent sur le côté gauche et une autre octave pour le droit. Cela se sentait maladroit. Pourquoi ne pas impliquer canaux ?

MidiBus fournit des gestionnaires d’événements supplémentaires, y compris noteOn, qui, si vous la définissez, est appelée lorsque n’importe quel appareil reçoit un un message. Cette méthode vous donnera le canal, la valeur de note et la vitesse. Toutefois, il ne vous donne pas le nom de l’autobus de MIDI qui l’a reçu.

À ce stade dans le développement, je n’avais pas un plan clair pour l’utilisation du nom de bus mais quelques idées sont formaient et je ne voulais pas laisser tomber la possibilité de l’utiliser. Mais je voulais le canal, trop.

midiMessage est appelée avec certaines données spécifiques remises droit à vous (par exemple le nom de bus), mais le message lui-même est quelque peu énigmatique. Vous avez peut-être remarqué il y a des mathématiques intéressantes passe pour obtenir les valeurs de note et de la vitesse.

 int note = (int)(message.getMessage()[1] & 0xFF) ; 

Un message MIDI est assez compact. Elle est envoyée sous forme d’une série d’octets. Je vais d’ignorer les détails techniques, mais pour obtenir la valeur utile de ces octets en Java, vous devez saisir un paragraphe d’eux et ensuite appliquer un « masque ». Ce masque force une partie de la valeur d’assumer une certaine valeur, ce qui nous donne un résultat utile.

Le code faisait cela pour obtenir les valeurs de note et de la vitesse. Ils ont même approche peut être utilisée pour obtenir la chaîne aussi bien. midiMessage deviendrait alors ceci :

void midiMessage (message de MidiMessage, long timestamp, String bus_name) {int canal = (int)(message.getMessage() [0] & 0x0F) + 1 ; void midiMessage(MidiMessage message, long timestamp, String bus_name) { int channel = (int)(message.getMessage()[0] & 0x0F) + 1; int note = (int)(message.getMessage()[1] & 0xFF) ; int vel = (int)(message.getMessage()[2] & 0xFF); invokeNoteHandler(note, vel, channel, bus_name); } 

invokeNoteHandler doit maintenant faire une recherche de méthode avec trois arguments :

 void invokeNoteHandler(int note, int velocity, int channel, String bus_name) { try { Class[] cls = new Class[3]; cls[0] = int.class; cls[1] = int.class; cls[2] = String.class; Method handler = this.getClass().getMethod( "onNote" + note, cls ); handler.invoke(this, velocity, channel, bus_name); } catch (Exception e) { println("* * * * * * Error handling note " + note + " * * * * * * "); e.printStackTrace(); } } 

Avec le nom de canal et de bus disponible chaque gestionnaire Remarque peut comportement différemment selon la source de la note. Dans certains cas cela rend plus facile d’organiser les notes au point d’origine. Par exemple, j’ai créé une méthode qui pourrait continuer à ajouter une image à 4x4 grille, suivi d’un index de grille. Si l’index est hors des limites (c'est-à-dire inférieure à 0 ou supérieure à 15, dépend de la direction dans laquelle a été utilisé pour remplir la grille) la grille serait déboisée.

J’ai cela a affecté la C4 (c.-à-d. note 48). Avant de porter des chaînes dans le code, j’ai eu C64 déclencher ce comportement sur le côté gauche de l’esquisse et C5 utilisé pour la déclencher à droite (où il irait dans le sens inverse, à partir de l’emplacement de la grille 15). Mais je n’étais pas heureux avec cette utilisation des octaves. Décider d’ajouter des canaux j’ai créé un autre instrument MIDI-déclencheur dans Renoise et réglez-le à la sortie sur le canal 2. De cette façon je pourrais mettre en place chaque note pour mapper à un comportement spécifique, avec le canal de déterminer de quel côté de l’écran, il semblerait.

Ce genre d’organiser les décisions sont très subjectif. Cela fonctionne pour moi (donc loin, peut-être après une utilisation plus que je vais travailler sur un autre régime). Le point est qu’il n’y a pas une seule vraie façon de le faire ; trouver une approche qui fonctionne pour vous.

Voici comment onNote48 fini après cette modification :

 void onNote48(int vel, int channel, String bus_name) { if (vel > 0) { switch(channel) { case 1: addToGridL4x4(); break; case 2: addToGridR4x4(); break; } } } 

addToGridL4x4() est la suivante :

 void addToGridL4x4() { if (gridL4x4Pointer < 0) { renderL.clear(); gridL4x4Pointer = 15; } renderL.add(new RenderArgs( nextTint(), gifs[nextGifIndex()], 4, 4, gridL4x4Pointer) ); gridL4x4Pointer--; } 

Le régime général est l’utilisation d’une variable pour suivre un index dans une grille, mise à jour de l’index, et en s’assurant qu’il a toujours une valeur valide.

À un moment donné, les variables globales doivent s’en aller et tout cela est enveloppé dans une classe, mais la mutabilité lâche se prête au comportement intéressant.

Articles Liés

Comment contrôler un croquis de traitement avec deux entrées Arduino

Comment contrôler un croquis de traitement avec deux entrées Arduino

Ce tutoriel va vous montrer comment construire un circuit de base Arduino qui permet de contrôler un fun ball couleur croquis dans le traitement.Vous aurez besoin :1 x carte Arduino (j'utilise un Uno)1 x planche à pain1 Photo de x-résistance1 x 10 k
Comment faire un synthétiseur sonore Arduino avec interface MIDI

Comment faire un synthétiseur sonore Arduino avec interface MIDI

Avec ce synthétiseur, vous pouvez faire Arduino reproduire des formes d'ondes totalement personnalisés. En raison de l'interface MIDI, il peut être connecté à n'importe quel instrument qui disposent et jouer avec le son souhaité.Étape 1: matériauxArd
Poux des volailles - quoi, pourquoi, qui, quand et où ? Traitement avec des huiles, prévention avec le régime. Poulets biologiques

Poux des volailles - quoi, pourquoi, qui, quand et où ? Traitement avec des huiles, prévention avec le régime. Poulets biologiques

J'aurais aimé avoir droit à cette pièce « beaucoup de choses que vous ne voulais pas savoir sur les poux, mais un jour peut être heureux que vous avez fait ».Par la suite instructable, j'essaie de condenser deux des articles que j'ai écrit sur le pou
Cellule photoélectrique réagit à la lumière d’un œil. un projet d’introduction pour l’utilisation de traitement avec Arduino

Cellule photoélectrique réagit à la lumière d’un œil. un projet d’introduction pour l’utilisation de traitement avec Arduino

Dans ce projet, vous pouvez voir un exemple simple d'utilisation le traitement afin de faire une représentation graphique de données qu'un arduino obtient comme un détecteur de. Dans ce cas, une cellule photoélectrique.Après obtenant une image de le
Comment couper Bullnose de perles en plaques de plâtre avec un Mider

Comment couper Bullnose de perles en plaques de plâtre avec un Mider

c'est comment nous couper des billes de cloison sèche rond qui se rencontrent dans un angle de 90 degrés. Nous allons utiliser un outil appelé un « Mider » à l'occasion de nos lignes afin d'avoir nos coins sans lacunes où ils se rencontrent. S'il exi
Gars : Comment traiter avec les filles sur internet.

Gars : Comment traiter avec les filles sur internet.

Après un membre ici s'est plaint des attaques et mesquin blagues sur le fait qu'elle était une fille sur ce site, j'ai pensé que cela pourrait être une bonne idée... Le thread d'origine.Donc voilà, un guide traitant des femmes sur l'internet, sans fa
Comment contrôler un jeu simple de traitement avec Arduino

Comment contrôler un jeu simple de traitement avec Arduino

Bonjour à tousDans ce Instructable, nous allons voir comment créer un « lien » entre une esquisse de traitement et une carte Arduino. Dans cet exemple, un module à ultrasons sera utilisé pour contrôler un avion dans un jeu simple. Encore une fois, ce
Post-traitement avec un GPS GeoExplorer3

Post-traitement avec un GPS GeoExplorer3

collecte des caractéristiques avec n'importe quelle unité de système de positionnement Global (GPS) peut être utile et intéressant. La plupart des gens rencontrent les unités de GPS après tout les collecte de données et le traitement est terminé. Nou
Voiture R/C contrôles de traitement avec les modules XBee

Voiture R/C contrôles de traitement avec les modules XBee

cette instructable est une modification de ma présentation à la communauté Processing Chicago au laboratoire de visualisation électronique (EVL), Université de l'Illinois à Chicago le 1er octobre 2012. Dans la rubrique desSérie de la bibliothèque de
À l’aide de traitement avec Ember

À l’aide de traitement avec Ember

Une des choses qui m'intéresse le plus sur braise, est le fait que les fichiers d'entrée sont une pile de png. Cela signifie que l'on peut nourrir essentiellement les images imprimante sans la nécessité d'organe solide modélisation, LSE ou trancher !
Traiter avec pâte à Pizza

Traiter avec pâte à Pizza

pâte à Pizza peut être délicat, avouons-le. Dérouler avec un rouleau à pâtisserie peut produire une pizza acceptable bien que plat, et si vous avez trop travailler la pâte sera simplement d'étirement retour comme un élastique (pas de mention avoir du
Simple astuce de Dernière Minute ou sac de bonbons traiter avec motif

Simple astuce de Dernière Minute ou sac de bonbons traiter avec motif

rendre cette dernière minute facile truc sac de bonbons en aucun temps du tout !  Utilisez ce modèle super simple, feutres, colle et un peu de couture pour concocter un sac de friandise pour votre soir de l'Halloween.  Si vous n'avez pas une machine
Traiter avec un froid

Traiter avec un froid

je me suis réveillé hier ne se sentant pas bien, et j'ai vite compris, j'ai eu un rhume. Hiver et le printemps sont les capitols froids de l'année, afin de vous préparer à ce qui est à venir, voici quelques conseils pour traiter un rhume !Étape 1: sy
Traiter avec Raw bords de tissu de toile de jute

Traiter avec Raw bords de tissu de toile de jute

si vous avez déjà travaillé avec toile de jute, vous remarquerez que parfois simplement en découpant la forme de votre chemin de table, napperon ou petit tapis toujours ne fait pas l'affaire. Parce que les bords ne sont pas cousus, ils vont être effi