2011-12-13 103 views
0

我的家中安装了一些LED,我想让它们随着音乐跳舞。使用RGB LED制作音乐可视化器

我的设置:通过USB连接到PC PWM控制

  • 10的RGB LED条带(30个如此信道)(48步)。
    • 的LED条物理上位于4组
  • Hardware由Node.js的控制
  • 音乐在不同的机器上用Traktor播放。
    • Traktor以主速度和级别提供MIDI数据。
    • 我将MIDI数据通过UDP转发给节点服务器。

我写了一个库,LED的抽象控制,所以在节点,我可以叫:

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

...它处理优化发送过来的数据USB总线。

因此,在我的节点服务器上,我有音乐节奏和关卡数据进来,并且想要将它转换成轻秀节目。节点每60ms获取当前的音频电平。数据看起来像这样(从歌曲的中间20秒样品,点击放大):

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

的MIDI数据是对的0..127规模输出。在这种情况下,42的速度值对应的BPM 128

有多个部分对这个问题可以得到解决:

  • 最重要的是,什么是用最好的方法这个数据来控制LED?
    • 理想情况下,该输入数据应该影响动画/颜色之间的转换;然而,在硬命中突然改变/频闪可能也很好。
  • 是否有任何其他来自Traktor的MIDI数据我应该发送给Node?
  • 我该如何保持4个物理组中的每一个偏向相同的颜色?感兴趣

链接:

+0

首先,MIDI是** **不音频数据并且与音频**无关。 MIDI只是控制合成器和各种其他设备的协议。如果您希望能够在iTunes中使用此功能,请完全忽略MIDI,然后仅针对音频重写您的问题。 – Brad 2011-12-14 14:21:16

回答

0
  1. 滚动整个图像向右或当一个新的数据样本进来
  2. 的LED将闪烁在由拖拉机所报告的速度离开。

你能得到关于后级过滤的MIDI报告吗?我猜,你可以使用不同的频段用于不同的原色。

1

我最喜欢做LED条带动画和可视化的建议是在HSV色彩空间中工作。这样,您就可以独立地控制面板和强度:在HSV颜色 https://www.npmjs.com/package/color-system

工作编写你的动画,然后转换成每个像素为RGB,当你准备把它们发送到驱动器。例如,您可以将您的响度与(V)强度以及色相的节奏(即彩虹的哪个部分)(H)连接起来。您可以使用正弦波来调制这些并制作不同的图案。

你可以从这里的一些想法 - 这些图案看起来很复杂,但他们随着音乐的强度和频率调制的简单的正弦波模式:https://www.instagram.com/stvito_performance_group/