Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Visualizer Musik EL Tape – Cahayakan Suara Anda dengan Arduino

Komponen dan Perlengkapan

Visualizer Musik EL Tape – Cahayakan Suara Anda dengan Arduino
Arduino UNO
× 1
EL Shield for Arduino
× 1
EL Tape - Green 1m
× 1
EL Tape - Red 1m
× 1
EL Tape - Blue 1m
× 1

Tentang Proyek Ini

EL Shield dan konektor
Visualizer Musik EL Tape – Cahayakan Suara Anda dengan Arduino

EL Tape dengan EL Shield dari SeeedStudio digunakan dengan Arduino UNO. Tape terhubung ke shield pada 3 dari 4 channel.


Setelah selesai, cukup unggah kode dan mulai memutar musik Anda!


Kode menggunakan Processing serta library Processing Arduino. Anda perlu membuat keduanya berfungsi untuk menggunakannya.


Ambil library untuk Arduino di sini.

Dapatkan Processing di https://processing.org/


Setelah semuanya terinstal, pindahkan library Arduino ke folder libraries di folder sketchbook processing Anda dan buka kode di editor Processing.


Ubah baris:

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

pada baris 38 BeatWrite menjadi file MP3 lokal di komputer Anda dan klik play!

Kode

BeatWriteJava
Sketch BeatWrite untuk Processing 2
/** * This sketch demonstrates how to use the BeatDetect object in FREQ_ENERGY mode.<br /> * You can use <code>isKick</code>, <code>isSnare</code>, </code>isHat</code>, <code>isRange</code>, * and <code>isOnset(int)</code> to track whatever kind of beats you are looking to track, they will report * true or false based on the state of the analysis. To "tick" the analysis you must call <code>detect</code> * with successive buffers of audio. You can do this inside of <code>draw</code>, but you are likely to miss some * audio buffers if you do this. The sketch implements an <code>AudioListener</code> called <code>BeatListener</code> * so that it can call <code>detect</code> on every buffer of audio processed by the system without repeating a buffer * or missing one. * <p> * This sketch plays an entire song so it may be a little slow to load. */ 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 connected to EL channel 1 int ledPin2 = 2; // LED connected to EL channel 2 int ledPin3 = 3; // LED connected to EL channel 3 float kickSize, snareSize, hatSize; void setup() { size(512, 200, P3D); minim = new Minim(this); arduino = new Arduino(this, "/dev/ttyACM1", 57600); song = minim.loadFile("/home/paul/Music/dope.mp3", 2048); song.play(); // a beat detection object that is FREQ_ENERGY mode that // expects buffers the length of song's buffer size // and samples captured at songs's sample rate beat = new BeatDetect(song.bufferSize(), song.sampleRate()); // set the sensitivity to 300 milliseconds // After a beat has been detected, the algorithm will wait for 300 milliseconds // before allowing another beat to be reported. You can use this to dampen the // algorithm if it is giving too many false-positives. The default value is 10, // which is essentially no damping. If you try to set the sensitivity to a negative value, // an error will be reported and it will be set to 10 instead. beat.setSensitivity(100); kickSize = snareSize = hatSize = 16; // make a new beat listener, so that we won't miss any buffers for the analysis 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); fill(255); if(beat.isKick()) { arduino.digitalWrite(ledPin+3, Arduino.HIGH); // set the LED on kickSize = 32; } if(beat.isSnare()) { arduino.digitalWrite(ledPin2+3, Arduino.HIGH); // set the LED on snareSize = 32; } if(beat.isHat()) { arduino.digitalWrite(ledPin3+3, Arduino.HIGH); // set the LED on hatSize = 32; } arduino.digitalWrite(ledPin+3, Arduino.LOW); // set the LED off arduino.digitalWrite(ledPin2+3, Arduino.LOW); // set the LED off arduino.digitalWrite(ledPin3+3, Arduino.LOW); // set the LED off textSize(kickSize); text("KICK", width/4, height/2); textSize(snareSize); text("SNARE", width/2, height/2); textSize(hatSize); text("HAT", 3*width/4, height/2); kickSize = constrain(kickSize * 0.95, 16, 32); snareSize = constrain(snareSize * 0.95, 16, 32); hatSize = constrain(hatSize * 0.95, 16, 32); } void stop() { // always close Minim audio classes when you are finished with them song.close(); // always stop Minim before exiting minim.stop(); // this closes the sketch super.stop(); } 
BeatListenerJava
class BeatListener implements AudioListener { private BeatDetect beat; private AudioPlayer source; BeatListener(BeatDetect beat, AudioPlayer source) { 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); } } 

Proses manufaktur

  1. Apa Itu Pegas Kawat Musik? Kekuatan, Daya Tahan, dan Aplikasi Modern
  2. Merancang UX untuk Lansia: Panduan Lengkap
  3. Mengapa Memori Digital Penting
  4. Tape Kait Serbaguna: Kekuatan, Fleksibilitas, dan Penggunaan Sehari-hari
  5. Warisan dan Evolusi Jukebox Klasik
  6. Lembar Musik: Dari Naskah Abad Tengah hingga Penerbitan Modern
  7. Pindai Kode Batang: Teknologi, Desain, dan Tren Masa Depan
  8. Komentar C++: Praktik Terbaik untuk Kode yang Mudah Dibaca dan Dipelihara
  9. Memilih Antara Data Matrix dan QR Code: Mana yang Terbaik untuk Bisnis Anda
  10. Kode G CNC Dijelaskan: Panduan Esensial untuk Programmer CNC