Arduino personnalisé MIDI Controller (6 / 14 étapes)

Étape 6: Durée de Code ! Enfin, presque...

Arduino Uno

Pour l’ONU, vous aurez à flash la ATmega16U2 * sur la planche avec les custom firmware de Dimitri Diakopoulos . Il s’agit d’un fichier HEX que vous gravez sur la puce en utilisant le logiciel de Flip Atmel. Le microprogramme prend en entrée le microprocesseur principal de l’ONU (ATmega328P) et la convertit en le MIDI au travers du protocole USB.

(*) Le microprocesseur principal de l’ONU (ATmega328P) n’a aucuns capacités USB. Au lieu de cela, il dispose d’une connexion série sur la broche 0 et 1, avec un second microprocesseur (ATmega16U2, c’est le petit carré noir entre le connecteur USB TX et RX LEDs). Cette puce est programmée pour être un convertisseur USB-série et est reconnue par l’ordinateur comme un port série ou port COM. Téléchargez votre propre firmware sur la puce, il peut être pratiquement n’importe quel périphérique USB, y compris un périphérique MIDI.

Programmation du Uno et MIDI

Parce que le ATmega328P dépend de la connexion série établie par le ATmega16U2 pour le téléchargement de nouveaux croquis Arduino, vous ne pouvez changer votre programme lors de l’exécution du firmware de MIDI. C’est pourquoi nous allons écrire notre programme tout d’abord et graver le MIDI firmware après le téléchargement de notre programme à l’ATmega328.

Vous pouvez supprimer le firmware MIDI à tout moment et réinstaller l' original firmware serial Arduino Uno.

Arduino Leonardo

Leonardo n’a qu’une bibliothèque spéciale d’utiliser les fonctions MIDI Teensy sur Arduino.
Voici comment installer ceci :

Linux (Ubuntu)

  1. Télécharger l’officiel Arduino IDE 1.0.6 ici. Vous devez 1.0.6, d’autres versions seront ne fonctionnera pas .
  2. Créez un nouveau dossier dans votre répertoire de base appelé « Exécutables ».
  3. Extrayez le fichier arduino-1.0.6-linux64.tgz que vous venez de télécharger dans le nouveau dossier de fichiers exécutables.
  4. Télécharger l’installateur de Teensyduino de ici.
  5. Dans la section « autres fichiers » sur la même page, cliquez sur « Linux des règles udev » et appuyez sur CTRL + S pour enregistrer.
  6. Supprimer l’extension .txt dans l’enregistrement de dialogue et choisissez « tous les fichiers » au lieu de .txt avant des enregistrer (mais garder l’extension .rules). Puis enregistrez-le dans votre dossier « Téléchargements ».
  7. Ouvrez une fenêtre de terminal à l’aide de CTRL + ALT + T, ou via le menu de votre application.
  8. Exécutez cette commande pour copier les règles udev dans le bon dossier.
    sudo cp teensy.rules/49-téléchargements /etc/udev/rules.d/
  9. Accédez à votre dossier de téléchargement à l’aide de votre navigateur de fichiers. Clic droit sur le fichier teensyduino.64bit téléchargé à l’étape 4, puis choisissez "Propriétés".
  10. Sous l’onglet « Autorisations », cochez la case « Autoriser l’exécution de fichier en tant que programme ». Ensuite, fermez cette fenêtre.
  11. Double-cliquez sur teensyduino.64bit pour exécuter le programme d’installation.
  12. Appuyez sur « suivant ».
  13. Puis, accédez à votre "arduino-1.0.6' votre dossier « Exécutables ». Une fois que vous faites cela, le bouton « suivant » devrait n’est plus grisé. Cliquez sur « suivant ».
  14. Cochez la case « MIDI » et autres bibliothèques, si nécessaire pour votre projet. (Vous pouvez également sélectionner « all » si vous le souhaitez). Puis cliquez sur « suivant » à nouveau.
  15. Puis cliquez sur « Installer ».
  16. Télécharger 'TeeOnArdu' de Fricklr-logiciel de GitHub. Sur le côté droit, il y a un bouton « Télécharger le ZIP ».
  17. Extrayez le fichier ZIP dans votre dossier téléchargements et l’ouvrir dans votre navigateur de fichiers.
  18. Il devrait y avoir un dossier appelé « TeeOnArdu-master ». Double cliquez dessus et copiez le répertoire « TeeOnArdu ».
  19. Allez dans votre dossier /home/Executables/arduino-1.0.6/hardware, puis passé le dossier de TeeOnArdu ici.
  20. Dans le terminal (CTRL + ALT + T), allez dans le répertoire de l’Arduino :
    CD Executables/arduino-1.0.6/
  21. Exécutez le logiciel Arduino :
    . / arduino
  22. À l’intérieur du logiciel Arduino, sous « Outils », sélectionnez "TeeOnArdu (Leo sur TeensyCore)" comme votre planche.
  23. La valeur 'USB-Type' à « MIDI ».
  24. Vous êtes maintenant prêt à utiliser le MIDI avec votre Leonardo !

Les instructions pour Windows et Mac sont très similaires, ils se trouvent sur la page Adafruit. Notez que la version est différente. Le tutoriel Adafruit utilise Arduino 1.0.5, mais vous devez 1.0.6. Aussi, ne pas utiliser les liens de téléchargement Adafruit, mais utilisez les liens dans les étapes 1, 4 et 16 (mentionné ci-dessus).

Messages MIDI

Avant que nous commencions la programmation, nous allons tout d’abord essayer de comprendre ce qu’est le MIDI.

MIDI (Musical Instrument Digital Interface) a été développé en 1982 et est un standard pour la communication entre instruments de musique, comme son nom l’indique. Les signaux originaux ont été transférés sur un vieux DIN 41524 connecteur. De nos jours, la plupart des périphériques MIDI ont un connecteur USB, pour les relier à un ordinateur. Toutefois, le protocole lui-même n’a pas changé.

Un message MIDI est composé de 3 octets et comporte 4 parties :

  1. Octet d’État : dans notre cas, ce prix consiste en un « message de canal » et un « canal ».
  2. Octet de données 1: un numéro de 7 bits.
  3. Octet de données 2: un autre numéro de 7 bits.

Pour notre contrôleur MIDI, nous allons utiliser seulement 3 messages de canaux différents : noteOn, noteOff et ControlChange.

  • NoteOn :
    message de canal : 0b1001 * (0 x 9) **
    canal : 0b0000-0b1111 (0 x 0-0xF) données 1: Notez le nombre: 0-127
    données 2: Vitesse ***: 0-127
  • NoteOff :
    message de canal : 0b1000 (0 x 8)
    canal : 0b0000-0b1111 (0 x 0-0xF)
    données 1: Notez le numer: 0-127
    données 2: Vitesse: 0-127
  • ControlChange :
    message de canal : 0b1011 (0xB)
    canal : 0b0000-0b1111 (0 x 0-0xF)
    données 1: numéro du contrôleur: 0-119 ***
    données 2: valeur de contrôleur: 0-127

0 b (*) signifie notation binaire .
(*) 0 x signifie hexadécimal notation.
(***) La vitesse est qu’une clé est dur a frappé.
(****) Contrôleur de numéros 120-127 ne sont pas disponibles pour les contrôleurs normaux, mais sont réservés aux modes de fonctionnement.

Remarque : il y d’autres messages comme wel (voir liens en bas de cette étape). Par exemple, un pitch bend message a ses propres 4 premiers bits et n’est pas un message de changement de contrôle, il n’a aucun numéro de contrôleur, donc il peut stocker une valeur de 14 bits. Il est utilisé par les contrôleurs fin MIDI plus élevés, lorsqu’une résolution plus élevée est requise. Toutefois, il ne peut être un maximum de 16 cintreuses de pitch (1 pour chacun des 16 canaux).

N oteOn et noteOff sont utilisés pour les touches d’un piano numérique, par exemple. Ici sont les numéros de note avec leurs notes de musique correspondantes. Le milieu C (C4) est mappé à 60, et 440Hz (A4) est mappé à 69. Nous allons utiliser ces notes pour nos boutons et commutateurs : noteOn quand le bouton est enfoncé et noteOff quand le bouton est relâché. Je recommande d’utiliser le canal 1 (0b0000), mais quand vous avez plus de 128 boutons, vous aurez besoin évidemment un deuxième canal. Données 1 sera la note numéro, l’adresse si vous voulez, du bouton, et de données 2 (la vitesse) n’a aucune importance pour un bouton (même si elle le fait si vous voulez pads sensibles à la pression/vitesse par exemple). Nous allons juste faire il 127 (100 %).

La notation générale noteOn: 1001 cccc 0nnnnnnn 0vvvvvvv
où cccc est le canal, nnnnnnn est le numéro du bouton et Pascal la vitesse
Par exemple : Appuyez sur la touche 15 (0b00001111) serait envoyer ce message : 1001 0000 00001111 01111111

La notation générale noteOff: 1000 cccc 0nnnnnnn 0vvvvvvv
où cccc est le canal, nnnnnnn est le numéro du bouton et Pascal la vitesse
Par exemple : libérer le bouton 15 (0b00001111) serait envoyer ce message : 1000 0000 00001111 01111111


ControlChange messages sont utilisés pour les contrôleurs qui peuvent avoir un large éventail de valeurs, comme un potentiomètre ou un fader. Cette valeur a 7 bits, donc il a une plage de 0 à 127 (0 % - 100 %). Ici est une liste de tous les contrôleurs et les numéros correspondants.

Notation générale ControlChange: 1011 cccc 0nnnnnnn 0vvvvvvv
où cccc est le canal, nnnnnnn est le numéro du contrôleur et Pascal la valeur du contrôleur.
Par exemple : en tournant le volume (numéro de contrôleur 7 ou 0b00000111) du canal 8 (0b1000) au maximum (127 ou 0b01111111) enverra ce message : 1011 1000 00000111 01111111

On trouvera plus d’informations sur le protocole MIDI sur .org, dans ce PDFou sur Wikipedia.

Articles Liés

Interface Arduino USB MIDI

Interface Arduino USB MIDI

Il y a quelques semaines j'ai commencé à travailler sur un contrôleur MIDI en utilisant Arduino et ATmega32. Je n'ai pas rempli prévu encore. Il est en cours d'élaboration.Vous pouvez lire l'ensemble histoire ici http://openhardware.ro/arduino-usb-mi
Arcade bouton MIDI Controller

Arcade bouton MIDI Controller

ayant une interface matérielle de votre musique préférée / DJ / logiciels VJ peut vraiment ouvrir portes dans votre créativité. La forme la plus répandue de contrôle matériel sur votre PC pour de telles applications est un MIDI controller.Un contrôle
Il dessiner vous-même - MIDI controller avec encre conductrice

Il dessiner vous-même - MIDI controller avec encre conductrice

'Draw It Yourself' est un contrôleur MIDI qui utilise une encre conductrice comme boutons. Il est basé sur l'Arduino et utilise un capteur capacitif (deux, en fait) pour déterminer si les boutons dessinés sont être touchés ou non.http://sanidanz.tumb
Arduino MIDI Controller

Arduino MIDI Controller

Un contrôleur MIDI est toute pièce d'équipement qui génère et transmet les données MIDI aux périphériques compatibles MIDI. En bref, si vous avez des boutons de votre contrôleur MIDI, vous pouvez programmer ces boutons à n'importe quel son que vous s
Construire une base Midi Controller partie 1 - 3 facile Pot (potentiomètre) Arduino Uno effets Midi Controller (série-USB)... Rapide, facile et bon marché !

Construire une base Midi Controller partie 1 - 3 facile Pot (potentiomètre) Arduino Uno effets Midi Controller (série-USB)... Rapide, facile et bon marché !

Bonjour à tous,Je suis relativement nouveau sur Arduino et donc ont dû faire face à ma façon de faire mes propres contrôleurs midi. Il y a une quantité énorme d'informations pointillées autour, mais je ne pouvais pas trouver un tutoriel simple pour u
SugarCube MIDI Controller

SugarCube MIDI Controller

Ce projet est un contrôleur MIDI portable, Arduino-powered, basé sur une grille qui démarre dans une variété d'applications à faire beaucoup de choses avec le son. Il a 16 boutons rétro-éclairés, utilisés comme les entrées et les sorties de donner au
Faire votre propre Arduino personnalisé compatible

Faire votre propre Arduino personnalisé compatible

j'aime Ardunio. J'aime les choses que les gens font avec eux et j'aime faire mes propres. En août dernier que j'ai publié une Instructable comment faire votre propre timbre-poste de taille compatible Arduino. Cet Instructable va vous montrer comment
Synthé bricolage + MIDI controller

Synthé bricolage + MIDI controller

Vous voulez être en mesure de contrôler votre Synthétiseur bricolage avec le MIDI ?Jouer avec un clavier ou de séquence il dans votre logiciel d'édition Audio préféré ?Étape 1: Ce que vous devezMatériel1 x Kit de bricolage synthé1 x Arduino Uno1 câbl
Shield Arduino personnalisé et capteurs

Shield Arduino personnalisé et capteurs

Vue d'ensemble :Cette instructable construira une série de modules de capteur personnalisé et un bouclier d'Arduino. Ces modules sont disponibles de nombreuses sources différentes, mais les fans du site Instructables trouverait probablement satisfact
Contrôle de Cubase avec Arduino basé à MIDI

Contrôle de Cubase avec Arduino basé à MIDI

Un de mes amis voulait contrôler Cubase, son logiciel d'enregistrement audio, avec un bouton poussoir afin qu'il puisse arrêter et démarrer des enregistrements à distance sans avoir à passer à l'ordinateur et tapez sur le clavier. Vous pouvez être ca
Arduino Wii Nunchuck controller

Arduino Wii Nunchuck controller

Comment faire pour commander 2 servos pensé le nunchuck wii.Étape 1: pièces Wii nunchuckArduino2 servoCarte de prototypageFils de raccordementÉtape 2: se connecter Brancher le nunchuck wii comme ce schéma.Étape 3: Télécharger le CodeÉtape 4: fait!!!
3 axe Arduino Based CNC Controller

3 axe Arduino Based CNC Controller

j'ai joué avec différentes conceptions CNC et des contrôleurs de moteurs pas à pas depuis de nombreuses années. J'ai commencé à construire des machines CNC il y a longtemps. Mon premier jet d'inspiration provenait d'eggbot de Bruce Shapiro. J'ai essa
Arduino personnalisé Micro Quadcopter Concept

Arduino personnalisé Micro Quadcopter Concept

modifier le 14 avril : Désolé les gars pour l'entrée tardive. vie a été très agitée ces derniers temps pour moi puisque nous avons dû remplacer un tuyau d'égout enterré dans notre maison est située sur la dalle de béton. Mais nous avons fait des prog
Arduino Bureau Fan Controller

Arduino Bureau Fan Controller

Quand j'ai changé récemment les rôles au sein de la société, je me suis déplacé à sites, passant de Bradford à notre siège social à Wakefield. Je l'ai dit au revoir à mon bureau vieux fidèle avec doit avoir ventilateur de bureau pour me garder cool a