Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Визуализатор музыки на магнитной ленте EL

Компоненты и расходные материалы

Arduino UNO
× 1
EL Shield для Arduino
× 1
Лента EL - зеленая 1 м
× 1
Лента EL - красная 1 м
× 1
Лента EL - синяя 1 м
× 1

Об этом проекте

EL Shield и разъемы

Лента EL с экраном EL от SeeedStudio использовалась с Arduino UNO. Лента подключалась к экрану на 3 из 4 каналов.


Как только это будет завершено, просто загрузите код и начните воспроизведение музыки!


Код использует обработку, а также библиотеку обработки Arduino. Вам нужно, чтобы оба они работали, чтобы использовать его.


Загрузите библиотеку для Arduino здесь.

Получите обработку на https://processing.org/


После того, как все это установлено, переместите библиотеку arduino в папку библиотек в папке с альбомом обработки и откройте код в редакторе обработки.


Измените строку:

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

в строке 38 Beat Запишите в локальный MP3-файл на вашем компьютере и нажмите "Воспроизвести"!

Код

  • BeatWrite
  • BeatListener
BeatWrite Java
Скетч BeatWrite для обработки 2
 / ** * Этот рисунок демонстрирует, как использовать объект BeatDetect в режиме FREQ_ENERGY. 
* Вы можете использовать isKick , isSnare , isHat , isRange , * и isOnset (int) для отслеживания любых видов ударов, которые вы хотите отслеживать, они сообщат * true или ложно в зависимости от состояния анализа. Чтобы "отметить" анализ, вы должны вызвать detect * с последовательными буферами звука. Вы можете сделать это внутри draw , но вы, вероятно, пропустите некоторые * аудио буферы, если сделаете это. В скетче реализован AudioListener с именем BeatListener *, так что он может вызывать detect для каждого буфера аудио, обрабатываемого системой, без повторения буфера * или отсутствует один. *

* Этот скетч воспроизводит всю песню, поэтому загрузка может быть немного медленной. * / 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; // светодиод подключен к каналу EL 1int ledPin2 =2; // светодиод подключен к каналу EL 2int ledPin3 =3; // светодиод, подключенный к каналу EL 3float kickSize, snareSize, hatSize; void setup () {size (512, 200, P3D); минимум =новый минимум (это); arduino =новый Arduino (это, «/ dev / ttyACM1», 57600); song =minim.loadFile ("/ home / paul / Music / dope.mp3", 2048); song.play (); // объект обнаружения ударов, который находится в режиме FREQ_ENERGY, который // ожидает в буфере длину размера буфера песни // и сэмплы, захваченные с частотой дискретизации песни beat =new BeatDetect (song.bufferSize (), song.sampleRate ()); // установить чувствительность на 300 миллисекунд // После обнаружения биения алгоритм будет ждать 300 миллисекунд // перед тем, как разрешить сообщение о другом биении. Вы можете использовать это для смягчения // алгоритма, если он дает слишком много ложных срабатываний. Значение по умолчанию - 10, // что практически не имеет демпфирования. Если вы попытаетесь установить чувствительность на отрицательное значение, // будет сообщено об ошибке, и вместо этого будет установлено значение 10. beat.setSensitivity (100); kickSize =snareSize =hatSize =16; // создаем нового слушателя битов, чтобы не пропустить ни одного буфера для анализа bl =new BeatListener (beat, song); textFont (createFont ("Helvetica", 16)); textAlign (ЦЕНТР); arduino.pinMode (ledPin + 3, Arduino.OUTPUT); arduino.pinMode (ledPin2 + 3, Arduino.OUTPUT); arduino.pinMode (ledPin3 + 3, Arduino.OUTPUT); } void draw () {фон (0); заполнить (255); если (beat.isKick ()) {arduino.digitalWrite (ledPin + 3, Arduino.HIGH); // включаем светодиод kickSize =32; } если (beat.isSnare ()) {arduino.digitalWrite (ledPin2 + 3, Arduino.HIGH); // включаем светодиод snareSize =32; } если (beat.isHat ()) {arduino.digitalWrite (ledPin3 + 3, Arduino.HIGH); // устанавливаем светодиод на hatSize =32; } arduino.digitalWrite (ledPin + 3, Arduino.LOW); // выключаем светодиод arduino.digitalWrite (ledPin2 + 3, Arduino.LOW); // выключаем светодиод arduino.digitalWrite (ledPin3 + 3, Arduino.LOW); // выключаем светодиод textSize (kickSize); текст («УДАР», ширина / 4, высота / 2); textSize (размер ловушки); текст ("SNARE", ширина / 2, высота / 2); textSize (размер шляпы); текст ("ШЛЯПА", 3 * ширина / 4, высота / 2); kickSize =ограничение (kickSize * 0,95, 16, 32); snareSize =ограничить (snareSize * 0.95, 16, 32); hatSize =ограничение (размер шляпы * 0,95, 16, 32); } void stop () {// всегда закрываем минимальные классы аудио по завершении работы с ними song.close (); // всегда останавливаем Minim перед выходом из minim.stop (); // это закрывает скетч super.stop ();}

BeatListener Java
 класс BeatListener реализует AudioListener {частный BeatDetect beat; частный источник AudioPlayer; BeatListener (BeatDetect beat, источник AudioPlayer) {this.source =source; this.source.addListener (это); this.beat =beat; } пустые образцы (float [] samps) {beat.detect (source.mix); } пустые образцы (float [] sampsL, float [] sampsR) {beat.detect (source.mix); }} 

Производственный процесс

  1. Что такое музыкальная проволочная пружина?
  2. Руководство по дизайну UX для пожилых людей
  3. Почему цифровой?
  4. Клейкая лента
  5. Музыкальный автомат
  6. Ноты
  7. Сканер штрих-кода
  8. С++ Комментарии
  9. Коды Data Matrix против QR-кодов
  10. Введение в G-код ЧПУ