В моем доме установлено несколько светодиодов, и я бы хотел, чтобы они танцевали под музыку.
Моя настройка:
- 10 светодиодных полос RGB (до 30 каналов), управляемых ШИМ (48 шагов), подключенных к ПК через USB.
- Светодиодные полосы физически расположены в 4 группах
- Аппаратное обеспечение контролируется Node.js.
- Музыка воспроизводится из Трактора на другом компьютере.
- Traktor предоставляет MIDI-данные с основным темпом и уровнем.
- У меня есть данные MIDI, перенаправленные на сервер Node по UDP.
Я написал библиотеку для абстрактного управления светодиодами, поэтому в Node я могу просто позвонить:
channel[n].set(intensity, r, g, b);
... и выполняет оптимизацию данных, передаваемых по шине USB.
Итак, на моем Node-сервере поступают данные о темпе и уровне музыки, и я хочу перевести их в световое шоу. Узел получает текущий уровень звука примерно каждые 60 мс. Данные выглядят следующим образом (20-секундный сэмпл с середины песни, нажмите для увеличения):
http://josh3736.net/images/ledviz.gif
Данные MIDI выводятся в масштабе 0.127. В этом случае значение темпа 42 соответствует ударов в минуту 128.
Этот вопрос состоит из нескольких частей:
- Самое главное, Как лучше всего использовать эти данные для управления светодиодами?
- В идеале, входные данные должны влиять на анимацию / переход между цветами; однако, при сильных ударах резкое изменение / стробоскоп тоже могут быть хорошими.
- Есть ли какие-либо другие MIDI-данные из Traktor, которые я должен отправить в Node?
- Как я могу удерживать каждую из 4 физических групп в одинаковом цвете?
Полезные ссылки: