Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Visualiseur de musique sur bande EL

Composants et fournitures

Arduino UNO
× 1
EL Shield pour Arduino
× 1
Ruban EL - Vert 1m
× 1
Ruban EL - Rouge 1m
× 1
Ruban EL - Bleu 1m
× 1

À propos de ce projet

EL Shield et connecteurs

La bande EL avec un blindage EL de SeeedStudio a été utilisée avec un Arduino UNO. La bande était connectée au blindage sur 3 des 4 canaux.


Une fois cela terminé, téléchargez simplement le code et commencez à jouer votre musique !


Le code utilise Processing ainsi que la bibliothèque Processing Arduino. Vous devrez faire fonctionner ces deux éléments pour pouvoir l'utiliser.


Prenez la bibliothèque pour Arduino ici.

Obtenez le traitement sur https://processing.org/


Une fois tout cela installé, déplacez la bibliothèque arduino dans le dossier des bibliothèques de votre dossier de carnet de croquis de traitement et ouvrez le code dans l'éditeur de traitement.


Changer la ligne :

chanson =minim.loadFile("/home/paul/Music/dope.mp3", 2048);

sur la ligne 38 de BeatWrite dans un fichier MP3 local sur votre ordinateur et cliquez sur play !

Code

  • BeatWrite
  • BeatListener
BeatWriteJava
Sketch BeatWrite pour Processing 2
/** * Ce sketch montre comment utiliser l'objet BeatDetect en mode FREQ_ENERGY.
* Vous pouvez utiliser isKick, isSnare , isHat, isRange, * et isOnset(int) pour suivre n'importe quel type de beats que vous cherchez à suivre, ils rapporteront * true ou faux selon l'état de l'analyse. Pour "cocher" l'analyse vous devez appeler detect * avec des buffers d'audio successifs. Vous pouvez le faire à l'intérieur de draw, mais vous risquez de manquer quelques * tampons audio si vous faites cela. Le sketch implémente un AudioListener appelé BeatListener * afin qu'il puisse appeler detect sur chaque tampon d'audio traité par le système sans répéter un tampon * ou manque un. *

* Ce sketch joue une chanson entière donc il peut être un peu lent à charger. */import processing.serial.*;import ddf.minim.*;import ddf.minim.analysis.*;import cc.arduino.*;Minim minim;AudioPlayer song;BeatDetect beat;BeatListener bl;Arduino arduino;int ledPin =1; // LED connectée au canal EL 1int ledPin2 =2; // LED connectée au canal EL 2int ledPin3 =3; // LED connectée au canal EL 3float kickSize, snareSize, hatSize;void setup() { size(512, 200, P3D); minim =nouveau Minim(ceci); arduino =nouvel Arduino (ceci, "/dev/ttyACM1", 57600); chanson =minim.loadFile("/home/paul/Music/dope.mp3", 2048); chanson.play(); // un objet de détection de battement qui est en mode FREQ_ENERGY qui // attend des mémoires tampons de la taille de la mémoire tampon de la chanson // et des échantillons capturés à la fréquence d'échantillonnage des chansons beat =new BeatDetect(song.bufferSize(), song.sampleRate()); // régler la sensibilité à 300 millisecondes // Après qu'un battement a été détecté, l'algorithme attendra 300 millisecondes // avant de permettre à un autre battement d'être signalé. Vous pouvez l'utiliser pour atténuer l'algorithme // s'il donne trop de faux positifs. La valeur par défaut est 10, // qui n'est essentiellement pas d'amortissement. Si vous essayez de définir la sensibilité sur une valeur négative, // une erreur sera signalée et sera définie sur 10 à la place. beat.setSensitivity(100); kickSize =snareSize =hatSize =16 ; // crée un nouveau beat listener, afin que nous ne manquions aucun tampon pour l'analyse bl =new BeatListener(beat, song); textFont(createFont("Helvetica", 16)); textAlign(CENTRE); arduino.pinMode(ledPin+3, Arduino.OUTPUT); arduino.pinMode(ledPin2+3, Arduino.OUTPUT); arduino.pinMode(ledPin3+3, Arduino.OUTPUT); }void draw() { background(0); remplir(255); if(beat.isKick()) { arduino.digitalWrite(ledPin+3, Arduino.HIGH); // met la LED sur kickSize =32; } if(beat.isSnare()) { arduino.digitalWrite(ledPin2+3, Arduino.HIGH); // met la LED sur snareSize =32; } if(beat.isHat()) { arduino.digitalWrite(ledPin3+3, Arduino.HIGH); // définit la LED sur hatSize =32; } arduino.digitalWrite(ledPin+3, Arduino.LOW); // éteint la LED arduino.digitalWrite(ledPin2+3, Arduino.LOW); // éteint la LED arduino.digitalWrite(ledPin3+3, Arduino.LOW); // éteint la LED textSize(kickSize); text("KICK", largeur/4, hauteur/2); textSize(snareSize); text("SNARE", largeur/2, hauteur/2); textSize(hatSize); text("CHAPEAU", 3*largeur/4, hauteur/2); kickSize =contraindre (kickSize * 0.95, 16, 32); snareSize =contraindre(snareSize * 0.95, 16, 32); hatSize =contrainte (hatSize * 0.95, 16, 32); }void stop() { // ferme toujours les classes audio Minim lorsque vous en avez fini avec elles song.close(); // arrêtez toujours Minim avant de quitter minim.stop(); // ceci ferme le sketch super.stop();}

BeatListenerJava
class BeatListener implémente AudioListener{ beat BeatDetect privé ; source AudioPlayer privée; BeatListener (beat BeatDetect, source AudioPlayer) { this.source =source; this.source.addListener(this); this.beat =beat; } void samples(float[] samps) { beat.detect(source.mix); } void samples(float[] sampsL, float[] sampsR) { beat.detect(source.mix); }}

Processus de fabrication

  1. Qu'est-ce qu'un ressort en fil de musique ?
  2. Guide de conception UX pour seniors
  3. Pourquoi le numérique ?
  4. Ruban adhésif
  5. Jukebox
  6. Partitions
  7. Commentaires C++
  8. Codes Data Matrix vs codes QR
  9. Introduction au code G CNC