【问题标题】:Making a music visualizer out of RGB LEDs用 RGB LED 制作音乐可视化器
【发布时间】:2012-01-19 15:40:02
【问题描述】:

我家安装了一些 LED,我想让它们随着音乐起舞。

我的设置:

  • 10 个 RGB LED 灯条(30 个通道)由 PWM(48 步)控制,通过 USB 连接到 PC。
    • LED 灯条物理上分为 4 组
  • Hardware 由 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 个物理组中的每一个都偏向于相同的颜色?

感兴趣的链接:

【问题讨论】:

  • 首先,MIDI 不是音频数据,并且与音频无关。 MIDI 只是一种用于控制合成器和各种其他设备的协议。如果您希望能够让它在 iTunes 中工作,那么完全忽略 MIDI,并仅针对音频重写您的问题。
  • @Brad:Traktor 使用 MIDI 从硬件接收控制命令并发送多种类型的数据,包括有关播放音频的数据——在这种情况下,我已经将其配置为发送速度(BPM)和电平(音量)。我将划定关于 iTunes 的界限,因为无论如何它可能超出了这个问题的范围。
  • @josh3735,好吧,既然我们完全忽略了音频,只关注 MIDI... 为什么不使用标准的 MIDI 同步消息?它们应该由 Traktor 以及其他软件(例如 Ableton Live)发送。每拍你会收到 96 条时钟消息。

标签: javascript node.js visualization midi led


【解决方案1】:

对于制作 LED 灯条动画和可视化,我的首要建议是在 HSV 色彩空间中工作。这样您就可以独立控制调色板和强度: https://www.npmjs.com/package/color-system

使用 HSV 颜色对动画进行编码,然后在准备好将它们发送到驱动器时​​将每个像素转换为 RGB。

例如,您可以将响度与 (V) 强度联系起来,将速度与色调(即彩虹的哪一部分)联系起来 (H)。您可以使用正弦波来调制这些并制作不同的模式。

您可以从这里获得一些想法 - 这些模式看起来很复杂,但它们是根据音乐的强度和频率调制的简单正弦波模式:https://www.instagram.com/stvito_performance_group/

【讨论】:

    【解决方案2】:
    1. 当有新的数据样本进入时,将整个图像向右或向左滚动
    2. 按照 Traktor 报告的速度闪烁 LED。

    你能得到过滤后电平的 MIDI 报告吗?我猜你可以为不同的原色使用不同的频段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-20
      • 2010-09-14
      相关资源
      最近更新 更多