【问题标题】:Java audio input lightorgranJava 音频输入 lightorgran
【发布时间】:2014-12-07 06:32:16
【问题描述】:

趁着假期,我想参加我公司的隔间装修比赛。我正计划设置一个带有 pi face 的树莓派来为歌曲的乐谱提供 5v 圣诞灯。我知道我可以轻松地对其进行硬编码以跟随音乐,这是我目前的计划。

但是我想知道是否有某种方法可以收听输出音频流并根据基于频率的输出来操纵灯光。假设有 8 个灯通道。 2 将覆盖 0-200hz 3 通道将覆盖 200-5000hz,3 将覆盖 5000-10000hz。当我等待我的 pi 面孔到达时,我正计划在 java 中进行一些基本测试。然后我会重写python的代码。我想知道是否有一种方法可以在 java 中完成我的想法,它们也是一种在 python 中执行最终实现的方法。

【问题讨论】:

  • 没有任何上下文,这是(太)广泛。当然,您可以从文件或 Java 中的 /dev/audio 中读取原始音频,并在 Swing UI 中显示一些变化的图像,或者只是在 System.out 上显示一些 printlns,如果您有任何附加到您的JVM。
  • 有没有一种方法可以读取发送到扬声器的实时输出?然后根据输出声音的频率解释数据?因此,假设您在 youtube 上收听视频,输出到扬声器的音频是否可以“收听”并转换为某种有意义的值,例如赫兹。然后这个值可以用来触发每个特定通道的光。
  • 我确信有一些方法(完全依赖于操作系统)。但是你写过算法吗?老实说,我会专注于这一点。

标签: java python audio


【解决方案1】:

可以使用 FFT/频率分析,但 RaspberryPi 没有计算能力。我构建了类似但基于 MIDI 的东西。 MIDI 是一种用于播放音乐/控制乐器的音乐协议/格式。 MIDI 文件包含有关音符的数据,这些数据可以轻松映射到通道和控制灯电路。

我的代码是开源的 (https://github.com/mp911de/midi-relay) 并用 Java 编写。也应该可以使用 Python 读取 MIDI。另一件事是,您需要以某种方式控制您的灯光。 GPIO 无法提供足够的电源来操作圣诞灯(我的 LED 电路需要大约 0.5A@24V(大约 12W)。这意味着,您必须使用某种带有外部电源的可控开关/继电器。我使用了以太网 -可控继电器。

今年,我把我的圣诞灯放到了网上,你可以在https://github.com/mp911de/heckenlights和网站http://heckenlights.org找到代码。 Github 代码包含一些关于如何连接和控制灯的示意图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-23
    • 2014-05-06
    • 2018-09-17
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多