Table des matières:

Arduino Uno Midi Fighter : 5 étapes
Arduino Uno Midi Fighter : 5 étapes

Vidéo: Arduino Uno Midi Fighter : 5 étapes

Vidéo: Arduino Uno Midi Fighter : 5 étapes
Vidéo: The 5 BEST ARDUINOS for Building a MIDI CONTROLLER 2024, Novembre
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Cette instructable a été créée pour répondre aux exigences du projet du Makecourse à l'Université de Floride du Sud (www.makecourse.com)

Basé sur le populaire MidiFighter de DJ Techtools, ce contrôleur d'interface numérique d'instrument de musique (MIDI) alimenté par Arduino peut être utilisé comme périphérique MIDI sur n'importe quel logiciel de station de travail audio numérique (DAW). Un contrôleur MIDI peut envoyer et recevoir des messages MIDI d'un ordinateur et peut être utilisé pour contrôler directement le logiciel utilisé. De plus, les commandes d'un contrôleur MIDI sont entièrement personnalisables, ce qui signifie que chaque bouton, curseur et bouton peut être associé à n'importe quelle fonction d'un DAW. Par exemple, appuyer sur un bouton peut jouer une note spécifique ou être programmé pour basculer le tempo de votre projet audio.

github.com/jdtar/Arduino-Midi-Controller

Étape 1: Matériaux

Vous trouverez ci-dessous une liste des matériaux et outils utilisés dans ce projet.

Arduino Uno

Planche à pain

4051/4067 Multiplexeur

Fils de cavalier

Fil supplémentaire

2x potentiomètres linéaires 10k ohms

16x boutons Sanwa 24mm

Thermorétractable

Fer à souder

Lame de rasoir

Résistance de 4,7 kΩ

Feuille acrylique (pour couvercle)

Logement pour boutons et Arduino

Imprimante 3D

Découpeur laser

Étape 2: Concevoir

Concevoir
Concevoir
Concevoir
Concevoir

J'avais déjà fourni le boîtier de mon contrôleur MIDI avant de démarrer le projet, j'ai donc fait un croquis pour le couvercle afin de visualiser où tout devait être placé. Je savais que je voulais au moins 16 boutons et quelques potentiomètres comme fonctionnalité, alors j'ai essayé d'espacer les composants aussi uniformément que possible.

Après avoir dessiné la mise en page du couvercle, j'ai exporté le fichier au format PDF 1:1 et l'ai envoyé à un découpeur laser pour découper une feuille d'acrylique. Pour les trous de vis, j'ai marqué où je voulais que les trous soient avec un marqueur et j'ai fait fondre l'acrylique avec un filament chaud.

Vous trouverez ci-joint le PDF 1:1 qui peut être imprimé au format 1:1 et coupé avec des outils électriques si un cutter laser n'est pas disponible.

Étape 3: Construction et câblage

Construction et câblage
Construction et câblage
Construction et câblage
Construction et câblage
Construction et câblage
Construction et câblage

Après avoir coupé l'acrylique, j'ai découvert que l'acrylique était trop fin pour supporter suffisamment tous les composants. J'ai ensuite découpé une autre feuille et les ai collées ensemble, ce qui s'est avéré parfaitement fonctionner.

Le câblage des composants a pris quelques essais et erreurs, mais a abouti au croquis de Fritzing joint. J'ai d'abord câblé les fils de masse et la résistance de 4,7 kΩ, soudé et thermorétracté les connexions sur les boutons. Le montage des deux potentiomètres à glissière nécessitait des trous de fusion pour les vis dans l'acrylique. Une fois les deux potentiomètres vissés, ils ont été câblés aux broches analogiques A0 et A1. Une fois le câblage terminé, je me suis souvenu qu'il n'y avait pas de capuchons de boutons pour mes faders, donc plutôt que de les acheter, j'ai imprimé des capuchons de boutons à l'aide d'une imprimante 3D en les esquissant dans Autodesk Fusion 360 et en les exportant vers un fichier STL. De

L'Arduino Uno n'a que 12 broches d'entrée numériques disponibles mais 16 boutons devaient être câblés. Pour compenser cela, j'ai câblé un multiplexeur 74HC4051 sur une maquette qui utilise 4 broches d'entrée numériques et permet à plusieurs signaux d'utiliser une ligne partagée, ce qui donne 8 broches d'entrée numériques disponibles pour un total de 16 broches numériques disponibles.

Le câblage des boutons aux bonnes broches consistait simplement à créer une matrice 4x4 et à l'utiliser dans le code. La partie délicate était cependant que le multiplexeur spécifique acheté avait une disposition de broches spécifique avec laquelle la fiche technique a aidé et j'avais également une disposition de note spécifique en tête lors du câblage des boutons qui a fini par ressembler un peu à ceci:

MATRICE DE NOTES

[Do2] [Do#2] [Ré2] [Ré#2]

[Sol#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[Do2] [Do#2] [Ré2] [Ré#2]

MATRICE DE PIN (M = ENTREE MUX)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

Étape 4: Programmation

La programmation
La programmation

Une fois l'assemblage terminé, il ne reste plus qu'à programmer l'Arduino. Le script joint est écrit de manière à être facilement personnalisable.

Le début du script comprend la bibliothèque MIDI.h et une bibliothèque de contrôleurs empruntée au blog Notes and Volts qui sont toutes deux incluses dans le fichier zip du code. En utilisant la bibliothèque de contrôleurs, des objets pour les boutons, les potentiomètres et les boutons multiplexés peuvent être créés contenant des valeurs de données qui incluent le numéro de note, les valeurs de contrôle, la vélocité de note, le numéro de canal MIDI, etc. La bibliothèque MIDI.h permet les communications d'E/S MIDI sur le Les ports série Arduino qui à leur tour prennent les données des objets du contrôleur, les convertissent en messages MIDI et envoient les messages à n'importe quelle interface midi connectée.

La partie void setup du script initialise tous les canaux comme étant désactivés et initie également une connexion série à 115200 bauds, un débit plus rapide que celui des signaux MIDI échangés.

La boucle principale prend essentiellement les tableaux de boutons et de boutons multiplexés et exécute une boucle for qui vérifie si le bouton a été enfoncé ou relâché et envoie les octets de données correspondants à l'interface midi. La boucle du potentiomètre vérifie la position du potentiomètre et renvoie les changements de tension correspondants à l'interface midi.

Étape 5: configuration

Image
Image
Installer
Installer
Installer
Installer
Installer
Installer

Une fois le script chargé sur l'Arduino, l'étape suivante consiste à brancher et à jouer. Il y a cependant quelques étapes avant de pouvoir l'utiliser.

Sur OSX, Apple a intégré une fonctionnalité permettant de créer des périphériques midi virtuels accessibles via l'application Audio Midi Setup sur Mac. Une fois le nouveau périphérique créé, Hairless MIDI peut être utilisé pour créer une connexion série entre l'Arduino et le nouveau périphérique midi virtuel. La connexion série de l'Arduino via Hairless MIDI fonctionne à la vitesse de transmission définie dans la partie void setup du script et doit être définie de manière équivalente dans les paramètres de préférence Hairless MIDI.

À des fins de test, j'ai utilisé Midi Monitor pour vérifier si les données correctes étaient envoyées via la connexion série-MIDI. Une fois que j'ai déterminé que chaque bouton a envoyé les données correctes via les canaux corrects, j'ai configuré le signal MIDI pour qu'il soit acheminé vers Ableton Live 9 en tant qu'entrée MIDI. Dans Ableton, j'ai pu mapper des échantillons audio tranchés sur chaque bouton et lire chaque échantillon.

Conseillé: