Tever
FR

Tutoriel · Labo DIY

Faire de la musique avec Arduino : du buzzer au MIDI

Comment faire sonner un Arduino, d'un buzzer avec tone() à la transformation de capteurs en contrôleurs. Un parcours pratique en trois niveaux, sans matériel coûteux.

Arduino UNO connecté en USB à un ordinateur portable ; capteur ultrasonique HC-SR04 avec une main au-dessus le contrôlant ; à l'écran, un éditeur de code avec une forme d'onde et des notes de musique

Faire de la musique avec du code est satisfaisant, mais la faire avec un gadget que l’on tient dans la main l’est encore plus. Arduino est un outil qui comble bien cet écart : une carte bon marché, un environnement simple et la possibilité de passer du « hello world » à quelque chose qui sonne en une après-midi. Je décris ici les trois niveaux qu’il vaut la peine de gravir, du plus simple au plus avancé.

Niveau 1 : son direct avec tone()

Le premier son sort d’un buzzer piézoélectrique — un composant qui coûte quelques centimes — et d’une seule fonction : tone(). On lui passe la broche à laquelle le buzzer est connecté et une fréquence en hertz, et la carte génère une onde carrée à cette fréquence. 440 Hz est le la de référence ; augmenter le nombre fait monter la note.

tone(8, 440);   // commence à jouer le la sur la broche 8
delay(500);     // une demi-seconde
noTone(8);      // silence

En enchaînant fréquences et silences avec delay() on obtient déjà une mélodie. C’est rudimentaire — onde carrée, une seule tonalité à la fois — mais c’est de la vraie musique qui sort de son code. Le premier « ta-da » accroche.

Niveau 2 : laisser le monde physique commander

Un Arduino qui ne fait que reproduire une mélodie fixe est une boîte à musique. La magie arrive quand il lit des capteurs et laisse l’environnement contrôler le son. C’est là que la carte gagne sa place dans le laboratoire.

Le cas le plus simple est un potentiomètre : on le lit avec analogRead(), qui renvoie un nombre, et on convertit ce nombre en fréquence. Tourner le bouton change la note en temps réel. À partir de là, tout consiste à changer de capteur :

  • Un capteur de distance à ultrasons transforme le geste d’approcher ou d’éloigner la main en hauteur de son : un instrument sans contact, comparable dans l’idée à un theremine fait maison.
  • Un capteur de lumière (une LDR) fait en sorte que l’ombre module le son.
  • Un accéléromètre transforme le mouvement de la carte en musique.

Le schéma est toujours le même : lire une grandeur physique, la projeter sur un paramètre musical, produire du son. Cette traduction est, en miniature, de l’informatique musicale mise entre les mains : lire le monde physique et le convertir en instructions MIDI.

Niveau 3 : parler MIDI

Le buzzer a ses limites : une onde laide et une seule voix. Le bond qualitatif consiste à ne plus générer le son sur la carte et à transformer Arduino en contrôleur : il lit les capteurs et, au lieu de faire du bruit, envoie des messages MIDI à un ordinateur, où un synthétiseur digne de ce nom fournit le timbre.

L’idée s’inscrit naturellement dans ce qu’on a vu sur MIDI : l’Arduino n’envoie pas d’audio, seulement des instructions — « commence cette note, à cette vélocité ». Le capteur décide quelle note ; l’ordinateur décide comment elle sonne. On sépare le geste du timbre, et soudain votre gadget à quelques euros contrôle n’importe quel instrument virtuel.

Les trois niveaux en un coup d’œil

NiveauMatérielTechniqueSortie
1Buzzer piézoélectriquetone() + delay()Mélodie monophonique
2Capteur (potentiomètre, ultrasons, LDR)analogRead() + projectionContrôle en temps réel
3Sans haut-parleur (USB ou série)Protocole MIDISynthétiseur externe

Par où commencer

Il n’est pas nécessaire d’acheter quoi que ce soit de coûteux pour la première étape : une carte, un buzzer, un câble et l’éditeur officiel suffisent pour le niveau 1. Le niveau 2 nécessite un capteur bon marché. Le niveau 3 demande, avant tout, de bien comprendre ce qu’est MIDI avant de l’implémenter.

Chaque niveau fonctionne de manière autonome. Inutile d’atteindre le MIDI pour en profiter : avec un buzzer et vingt lignes de code, on fait déjà de la musique avec ses mains.