我家里安装了一些 LED,我想让它们随着音乐起舞。
我的设置:
- 由 PWM(48 步)控制的 10 个 RGB LED 灯条(即 30 个通道)通过 USB 连接到 PC。
- LED 灯条物理上分为 4 组
- 硬件由 Node.js 控制。
- Traktor 在另一台机器上播放音乐。
- Traktor 提供带有主速度和电平的 MIDI 数据。
- 我通过 UDP 将 MIDI 数据转发到节点服务器。
我编写了一个库来抽象控制 LED,所以在 Node 中,我可以调用:
channel[n].set(intensity, r, g, b);
...它处理优化通过 USB 总线发送的数据。
因此,在我的 Node 服务器上,我收到了音乐节奏和电平数据,并希望将其转换为灯光秀。节点大约每 60 毫秒获取一次当前音频电平。数据看起来像这样(从歌曲中间开始的 20 秒样本,点击放大):
http://josh3736.net/images/ledviz.gif
MIDI 数据以 0..127 的比例输出。在这种情况下,42 的速度值对应于 128 的 BPM。
这个问题有多个部分可以解决:
- 最重要的是,使用这些数据控制 LED 的最佳方法是什么?
- 理想情况下,输入数据应该影响颜色之间的动画/过渡;然而,在重击时突然改变/频闪也可能很好。
- 我应该将 Traktor 的任何其他 MIDI 数据发送到 Node 吗?
- 如何使 4 个物理组中的每一个都偏向于相同的颜色?
感兴趣的链接: