Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

EL Tape Music Visualiser

Componenten en benodigdheden

Arduino UNO
× 1
EL Shield voor Arduino
× 1
EL Tape - Groen 1m
× 1
EL Tape - Rood 1m
× 1
EL Tape - Blauw 1m
× 1

Over dit project

EL Shield en connectoren

EL Tape met een EL Shield van SeeedStudio werd gebruikt met een Arduino UNO. De tape was verbonden met het schild op 3 van de 4 kanalen.


Zodra dat is voltooid, uploadt u eenvoudig de code en begint u met het afspelen van uw muziek!


De code maakt gebruik van zowel Processing als de Processing Arduino-bibliotheek. Je moet beide werken om het te kunnen gebruiken.


Pak hier de bibliotheek voor Arduino.

Ga voor verwerking op https://processing.org/


Zodra dat allemaal is geïnstalleerd, verplaatst u de arduino-bibliotheek naar de bibliothekenmap van uw verwerkingsschetsboekmap en opent u de code in de verwerkingseditor.


Verander de regel:

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

op regel 38 van BeatWrite naar een lokaal MP3-bestand op uw computer en klik op afspelen!

Code

  • BeatWrite
  • BeatListener
BeatWriteJava
BeatWrite-schets voor verwerking 2
/** * Deze schets laat zien hoe u het BeatDetect-object in FREQ_ENERGY-modus gebruikt.
* U kunt isKick, isSnare gebruiken , isHat, isRange, * en isOnset(int) om het soort beats dat je wilt volgen te volgen, ze rapporteren * true of onwaar op basis van de status van de analyse. Om de analyse te "vinken" moet u detect * aanroepen met opeenvolgende audiobuffers. Je kunt dit doen binnen draw, maar je zult waarschijnlijk een aantal * audiobuffers missen als je dit doet. De sketch implementeert een AudioListener genaamd BeatListener * zodat het detect kan aanroepen op elke buffer van audio die door het systeem wordt verwerkt zonder een buffer te herhalen * of er een missen. *

* Deze schets speelt een heel nummer af, dus het kan een beetje traag zijn om te laden. */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 aangesloten op EL-kanaal 1int ledPin2 =2; // LED aangesloten op EL-kanaal 2int ledPin3 =3; // LED aangesloten op EL-kanaal 3float kickSize, snareSize, hatSize; void setup () { size (512, 200, P3D); minim =nieuwe Minim(this); arduino =nieuwe Arduino (deze, "/dev/ttyACM1", 57600); song =minim.loadFile("/home/paul/Music/dope.mp3", 2048); nummer.afspelen(); // een beatdetectie-object in de FREQ_ENERGY-modus die // buffers verwacht van de lengte van de buffergrootte van het nummer // en samples die zijn vastgelegd met de samplefrequentie van het nummer beat =new BeatDetect(song.bufferSize(), song.sampleRate()); // stel de gevoeligheid in op 300 milliseconden // Nadat een slag is gedetecteerd, wacht het algoritme 300 milliseconden // voordat een nieuwe slag kan worden gerapporteerd. U kunt dit gebruiken om het //-algoritme te dempen als het te veel valse positieven geeft. De standaardwaarde is 10, // wat in wezen geen demping is. Als u de gevoeligheid op een negatieve waarde probeert in te stellen, wordt // een fout gerapporteerd en in plaats daarvan op 10 gezet. beat.setSensitivity(100); kickSize =snareSize =hatSize =16; // maak een nieuwe beatlistener, zodat we geen buffers voor de analyse missen bl =new BeatListener(beat, song); textFont(createFont("Helvetica", 16)); textAlign(CENTER); arduino.pinMode (ledPin+3, Arduino.OUTPUT); arduino.pinMode (ledPin2+3, Arduino.OUTPUT); arduino.pinMode (ledPin3+3, Arduino.OUTPUT); }void draw() { background(0); vullen (255); if(beat.isKick()) { arduino.digitalWrite(ledPin+3, Arduino.HIGH); // zet de LED op kickSize =32; } if(beat.isSnare()) { arduino.digitalWrite(ledPin2+3, Arduino.HIGH); // zet de LED op snareSize =32; } if(beat.isHat()) { arduino.digitalWrite(ledPin3+3, Arduino.HIGH); // zet de LED op hatSize =32; } arduino.digitalWrite(ledPin+3, Arduino.LOW); // zet de LED uit arduino.digitalWrite (ledPin2+3, Arduino.LOW); // zet de LED uit arduino.digitalWrite (ledPin3+3, Arduino.LOW); // zet de LED uit textSize (kickSize); text("KICK", breedte/4, hoogte/2); tekstSize (snareSize); text("SNARE", width/2, height/2); textSize(hatSize); text("HOED", 3*breedte/4, hoogte/2); kickSize =beperken (kickSize * 0,95, 16, 32); snareSize =beperking (snareSize * 0,95, 16, 32); hatSize =beperking (hatSize * 0,95, 16, 32); }void stop() { // sluit altijd Minim-audioklassen als je ermee klaar bent song.close(); // stop altijd Minim voordat u minim.stop(); // dit sluit de schets super.stop();}

BeatListenerJava
class BeatListener implementeert AudioListener{ private BeatDetect beat; privé AudioPlayer-bron; BeatListener (BeatDetect-beat, AudioPlayer-bron) { this.source =source; deze.bron.addListener(dit); deze.beat =beat; } void samples(float[] samps) { beat.detect(source.mix); } void samples (float[] sampsL, float[] sampsR) { beat.detect(source.mix); }}

Productieproces

  1. Wat is een muziekdraadveer?
  2. UX Design Guide voor senioren
  3. Waarom digitaal?
  4. Ducttape
  5. Jukebox
  6. Bladmuziek
  7. Barcodescanner
  8. Cellofaantape
  9. C++ Opmerkingen
  10. Datamatrixcodes versus QR-codes
  11. CNC G-code introductie