2011-12-13 4 views
0

У меня есть некоторые светодиоды, установленные в моем доме, и я хотел бы, чтобы они танцевали под музыку.Изготовление музыкального визуализатора из светодиодов RGB

Моя установка:

  • 10 LED RGB полоса (так 30 каналов), контролируемая ШИМ (48 шагов), подключенная к компьютеру через USB.
    • светодиод полос физически расположены в 4 группах
  • Hardware контролируется Node.js.
  • Музыка разыгрывается из Трактора на другой машине.
    • Traktor предоставляет MIDI-данные с мастер-темпом и уровнем.
    • У меня есть данные MIDI, перенаправленные на сервер узла через UDP.

Я написал библиотеку для абстрактного контроля светодиодов, так и в узле, то я могу просто позвонить:

channel[n].set(intensity, r, g, b); 

... и обрабатывает оптимизации передаваемых данных USB-шина.

Итак, на моем сервере Node у меня есть темп темпа и данные уровня, входящие в систему, и вы хотите перевести это в световое шоу. Узел получает текущий уровень звука примерно каждые 60 мс. Данные выглядит следующим образом (20 второй образец с середины песни, нажмите на больше):

http://josh3736.net/images/ledviz.gif

данные MIDI выводятся по шкале 0..127. В этом случае значение темпа 42 соответствовало ВРМ 128.

Есть несколько частей к этому вопросу, которые могут быть рассмотрены:

  • Самое главное,, что это лучший подход к использованию эти данные для управления светодиодами?
    • В идеале эти входные данные должны влиять на анимацию/переход между цветами; однако, на жестких попаданиях резкое изменение/строб тоже может быть приятным.
  • Есть ли другие данные MIDI от Traktor, которые я должен отправить в узел?
  • Как я могу привязать каждую из 4 физических групп к одному и тому же цвету?

ссылки интереса:

+0

Во-первых, MIDI является ** не ** аудиоданные и ** не имеет никакого отношения к аудио ** вообще. MIDI - это просто протокол для управления синтезаторами и другими устройствами. Если вы ожидаете, что сможете работать в iTunes, тогда полностью игнорируйте MIDI и перепишите свой вопрос только на аудио. – Brad

+0

@Brad: Traktor использует MIDI для приема команд управления с аппаратного обеспечения и для передачи многих типов данных, включая * данные о воспроизводимом аудио * - в этом случае я настроил его для отправки темпа (BPM) и уровня (громкость). Я собираюсь поцарапать строку об iTunes, так как это, вероятно, вне сферы действия для вопроса. – josh3736

+0

@ josh3735, ладно, теперь, когда мы полностью игнорируем звук и просто смотрим на MIDI ... Почему бы не использовать стандартные MIDI-сообщения синхронизации? Они должны быть отправлены Traktor, а также другим программным обеспечением, таким как Ableton Live. Вы получите 96 часовых сообщений за такт. – Brad

ответ

0
  1. Выделите все изображение вправо или влево, когда новая выборка данных поступает в
  2. мигание светодиода в темпе, сообщенные Traktor.

Можете ли вы получить MIDI-отчет о постфильтрации уровня? Думаю, вы могли бы использовать разные полосы частот для разных основных цветов.

1

Мой главный совет для создания анимации и визуализации светодиодных лент - работать в цветовом пространстве HSV. Таким образом, вы можете самостоятельно управлять палитрой и интенсивностью: https://www.npmjs.com/package/color-system

Работайте в цветах HSV, чтобы кодировать анимацию, а затем конвертировать каждый пиксель в RGB, когда вы будете готовы отправить их на диск.

Таким образом, вы можете, например, подключить свою громкость к интенсивности (V) и темпу к оттенку (то есть к какой части радуги) (H). Вы можете использовать синусоидальные волны, чтобы модулировать их и создавать разные шаблоны.

Вы можете получить некоторые идеи здесь - эти модели выглядят сложными, но они простые синусоидальные модулированные волновые паттерны с интенсивностью и частотой музыки: https://www.instagram.com/stvito_performance_group/