Table des matières:

Piano joueur de synesthésie : 4 étapes
Piano joueur de synesthésie : 4 étapes

Vidéo: Piano joueur de synesthésie : 4 étapes

Vidéo: Piano joueur de synesthésie : 4 étapes
Vidéo: 1/3 IRCAM Scènes sonores Synesthésie V Mignerot 2024, Novembre
Anonim
Image
Image
Piano Joueur Synesthésie
Piano Joueur Synesthésie
Piano Joueur Synesthésie
Piano Joueur Synesthésie

Ce piano mécanique joue de la musique à l'aide d'une roue chromatique et d'une caméra ! Les images sont capturées par la caméra, traitées et interprétées comme des notes de musique. À l'heure actuelle, il est programmé pour jouer des comptines qui peuvent être modifiées en téléchargeant un nouveau sketch arduino qui spécifie quelles notes doivent être jouées (quelles couleurs doivent être affichées à l'appareil photo).

Le PC Linux embarqué démarre un service au démarrage qui prend une photo avec un appareil photo, calcule une fonction des valeurs RVB de l'image et émet un son basé sur la valeur de retour de la fonction. Avant de jouer le son, il envoie un signal indiquant à un Arduino de faire pivoter un servo, présentant la couleur correspondant à la prochaine note à jouer. Puis la boucle recommence, une photo est prise, la roue chromatique est tournée et un son est joué à l'infini.

Ce projet est un moyen amusant d'intégrer la musique, la programmation de systèmes Linux modernes, la programmation de microcontrôleurs, le griffonnage d'inkscape, la découpe au laser et la réutilisation de certaines boîtes en carton indésirables.

Tout le code et les SVG inkscape sont disponibles sur github à l'adresse:

github.com/melvyniandrag/pyMusic

Les matériaux utilisés:

  1. Étiquettes blanches vierges
  2. Boîte en carton
  3. Webcam
  4. Crayons
  5. Arduino
  6. Beagleboard-xM
  7. Fils
  8. Câble série
  9. Connaissances de base en traitement d'images et en musique

Étape 1: Le matériel informatique

Les trucs d'ordinateur
Les trucs d'ordinateur
Les trucs d'ordinateur
Les trucs d'ordinateur
Les trucs d'ordinateur
Les trucs d'ordinateur

À bord, vous aurez besoin d'un petit ordinateur compatible Linux tel qu'un Raspberry Pi. J'ai utilisé un vieux BeagleBoard-xM parce que je l'avais dans le coin et que j'avais déjà un système d'exploitation sur la carte SD. Vous pouvez utiliser n'importe quoi, tant qu'il peut gérer une webcam, peut exécuter OpenCV (la bibliothèque de vision par ordinateur utilisée pour prendre et traiter des images de la roue chromatique) et dispose d'une prise de sortie audio.

J'ai configuré le système d'exploitation pour exécuter le code python qui capture les images au démarrage en suivant un tutoriel systemd. Pour que le script s'exécute, vous devrez sudo apt-get install python-pyaudio python-opencv pour obtenir les bibliothèques indiquées. Vous aurez également besoin de pip install numpy pyserial pour obtenir ces bibliothèques. pyaudio est utilisé pour jouer des sons, opencv est utilisé pour la prise et le traitement d'images, numpy est également utilisé pour le traitement d'images et pyserial est nécessaire pour communiquer avec l'Arduino.

L'Arduino est utilisé pour faire tourner le servomoteur sur lequel la roue chromatique est montée. Si vous aviez un Raspberry Pi, vous pourriez utiliser les broches GPIO et laisser de côté l'Arduino, mais vous devrez modifier le code Python.

Dans les images, vous pouvez voir les entrailles technologiques de l'opération et quelques extraits de code.

Étape 2: Le piano

Le piano
Le piano
Le piano
Le piano
Le piano
Le piano

J'ai fabriqué le piano en carton à partir de vieilles boîtes que j'avais. J'ai la chance d'habiter près d'un makerspace équipé d'un cutter laser. Pendant une année entière, je me suis demandé à quoi bon diable une découpeuse laser, et il s'avère que j'ai finalement trouvé une utilité pour elle.

J'ai mesuré l'ordinateur, l'arduino et le servo pour savoir de combien d'espace j'aurais besoin, j'ai dessiné les parties du piano dans inkscape et les ai découpées sur le cutter laser. (Edit: je n'ai plus de carton pour que le boîtier puisse contenir l'ordinateur et l'arduino et je ne les ai donc pas mis. Ils sont à l'extérieur du boîtier. Peu importe, j'aurais pu obtenir une autre boîte quelque part, mais ça n'a pas été le cas peu importe à la fin.)

Les pièces ont été assemblées avec de l'époxy.

Étape 3: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée

Voici quelques images du piano en cours d'assemblage et de coloration. L'imprimante était à court d'encre, je n'ai donc pas pu imprimer les couleurs sur les étiquettes blanches comme je l'avais prévu. J'ai donc utilisé les crayons de ma fille. Et je n'arrivais pas à trouver un couteau xacto pour couper l'étiquette à la forme du carton, alors j'ai juste utilisé un couteau à steak et mis quelque chose de protecteur sur le plan de travail de la cuisine. Utilisez ce que vous avez !

Étape 4: Défis techniques et considérations futures

Défis techniques et considérations futures
Défis techniques et considérations futures
Défis techniques et considérations futures
Défis techniques et considérations futures

Une partie difficile de ce projet consistait à obtenir les valeurs RVB appropriées à lire par la caméra. La webcam que j'ai a des LED incroyablement lumineuses que je ne sais pas comment éteindre sous Linux. Je pense qu'il existe un pilote Windows qui vous permet de les activer et de les désactiver. J'ai essayé de coller les LED avec du ruban électrique et de les laisser allumées. J'ai également testé la robustesse du logiciel en lui montrant non seulement du papier de couleur, mais aussi en écrivant un petit site Web qui montre les couleurs.

Les sons produits par l'ordinateur ont parfois des craquements et des craquements, et cela vient du fait que j'ai très peu d'expérience en programmation audio Linux. La bibliothèque pyaudio crache tout un tas de plaintes concernant le fait que JACK n'est pas installé sur le PC, mais par défaut, JACK ne veut pas fonctionner sans tête (sans ordinateur de bureau et moniteur). C'est une tâche de programmation que je pensais être un raffinement, mais qui n'était pas nécessaire pour exprimer l'essence du piano mécanique que j'avais en tête.

J'avais envisagé d'utiliser une manivelle pour changer les couleurs, et peut-être de les avoir sur un genre de rouleau à pâtisserie, mais cela introduit ses propres complications. Le servo est un peu bruyant, mais fonctionne bien pour l'instant.

Le piano mécanique n'est actuellement programmé que pour jouer 4 notes. C'est parce que le servo ne bouge que de 180 degrés, la plupart des comptines peuvent être jouées avec seulement 3-4 notes, et je ne voulais pas que la roue chromatique soit encombrée de régions de couleur, ce qui pourrait dérouter la caméra. Ainsi, grâce à une combinaison de chance musicale et de contraintes techniques, 4 notes, c'est bien.

Conseillé: