探索音乐可视化:LED节奏灯的有趣小项目

发表时间: 2021-11-10 11:11

偶然脑子发热心血来潮,想要做一个声音可视化的系列专题。这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累些有用的音乐频谱可视化的资料,也会争取成型一些实用好玩的音乐可视器项目。


初步设想:

1、模拟量拾音模块,主要是采用MAX9814和MAX4466;

2、使用Arduino平台,尝试代码编程+仿真编程+图形编程三者结合;

3、开发板是UNO R3\nano V3.0\MEGA2560 R3\ESP8266\ESP32以及掌控板等;

4、实验的可视执行器模块,包括LED发光二极管,RGB彩色LED模块,WS2812彩色灯模块,RGB彩色LED灯带,LED点阵屏模块,OLED有机屏模块,WS2812灯条、WS2812灯环,WS2812像素屏,WS2812炫彩5050灯带以及全彩LED模组P4\P5\P6\P10灯板等。

知识点

音乐可视化(Music visualization)

声音可视化是通过抽象的动态视觉效果来调动观者的多重感官,并通过声音的辅助使得所传递出的信息更加立体。音乐可视化,是指一种以视觉为核心,以音乐为载体,以大众为诉求对象,借助多种新媒体技术等传播媒介,通过画面、影像来诠释音乐内容的、视听结合的大众化传播方式。它能为理解、分析和比较音乐艺术作品形态的表现力和内外部结构提供的一种直观视觉呈现的技术。


1、音乐作品用视觉来欣赏

在传统意义上,音乐属于耳朵,是用听觉体验美感的艺术。人们在欣赏音乐时,往往是在倾听的基础上,通过“音响感知与情绪感受”“形象联想与理性感悟”以及“音乐美的体验与感悟”等阶段,完成对音乐作品由感性到理性的审美体验过程。音乐具有形象思维的特点,在情感的伴随下,通过想象联想,获得音乐形象、生活情景以及意境等形象,音乐可视化变为现实。


2、音乐文化用视觉来理解

视觉与听觉是人类感知外部世界最重要的通道,是人类最自然最常见的行为,对人类认知世界的活动来说是不可替代的。通过各种视听感官认知外部世界,“观看”和“聆听”是最自然、最直接、也是最重要的手段。眼睛像镜头,耳朵如收音器,因此人类所接触到的是经过“视听媒介”的选择、过滤之后具有特定观看角度、聆听维度的拟态世界。古希腊哲学家们认为视觉与理性相连,听觉与灵魂相接,视听能够提供认识对象、认知世界的最多的客观信息,其认知特性是最可依赖的。人类的“看”和“听”不仅是自然生理行为,更是社会行为,是一种文化景观。这种文化景观是人与外部世界交流互动而创造出的意义。


3、音乐信息用视觉来传播

声音和影像、听觉与视觉,在当代社会中,两者共同约定审美趋向,主宰大众文化的美学形态。视觉为人们看见和理解的音乐作品、音乐文化提供了诸多方便,人们将越来越依赖于读图,可以说,可视化将重塑我们的由印刷文化改造过的生活方式。同时,视觉文化以一种人们不易察觉的方式,在观看的同时提供着潜在的意识形态和特定的世界观。尽管音乐艺术本身并不依赖视觉,但却依赖音乐可视化这一理解音乐文化的趋势。视觉化也使人们的认知方式发生了重大改变。过去,音乐被理解为复杂而和谐的数学比例;现在,音乐被理解为美妙而深奥的灵韵;未来,音乐将被理解节奏化的图像,因为可视化已经成为一种世界的表征。(具体见百度百科)


随着音乐节奏而闪烁的简单LED发光二极管灯


实验材料:
Arduino uno开发板
KY-038声音传感器模块
LED发光二极管
mini面包板及杜邦线


声音传感器的作用相当于一个话筒(麦克风)。它用来接收声波,显示声音的振动图象,但不能对噪声的强度进行测量。传感器内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被转化成0-5V的电压,经过A/D转换被数据采集器接受,并传送给Arduino uno。

模块特点:
1、一路音频信号输出,检测到声音输出音频信号
2、有3mm的安装螺丝孔
3、使用5v直流电源供电
4、模拟量电压信号输出,信号幅度VCC/2
5、有阀值翻转电平输出
6、高感度麦克风,灵敏度高
7、 两路红色LED指示:POWER和SENSOR。POWER:上电即亮。SENSOR: 当麦克风感测的声音达到一定值时,此LED亮。
8、内置放大电路,增益可调,性能稳定
9、能直接输出线性模拟量,AD采集的时候,就更加方便了,解决了很多客户,直接采集波形的痛苦。也可以直接作为分贝传感器使用
10、能检测声音大小,是否有声音,口哨声,可检测声音强度;但不能识别特殊频率。
11、可以用于声控灯,配合光敏传感器做声光报警,以及声音放大,声音检测的场合。


KY-038声音传感器模块电原理示意图:


看见声音,基于Arduino的系列音乐可视器

项目之一:随着音乐节奏而闪烁的简单LED发光二极管灯

实验接线:声音模块数字端口DO接Uno的D2,D11接LED灯

实验开源代码

/*  【花雕动手做】看见声音,基于Arduino的系列音乐可视器  项目之一:随着音乐节奏而闪烁的简单LED发光二极管灯  实验接线:声音模块数字端口DO接Uno的D2,D11接LED灯*/#define LEDstrip 11void setup() {pinMode(2, INPUT);pinMode(LEDstrip, OUTPUT);}void loop() {boolean soundstate = digitalRead(2);if (soundstate == 1) {analogWrite(LEDstrip, 255);delay(10);}else {analogWrite(LEDstrip, 0);}}

实验场景图:

实物场景动态图:


实验开源图形编程(Mind+、Mixly、编玩边学)

实验开源仿真编程(Linkboy V4.62)


第二项,使用三色LED交通灯模块(红绿黄灯),来试试效果


音乐可视化系列小项目(01)---LED节奏灯

项目之二:随着音乐节奏而闪烁的三色LED灯模块

实验开源代码

/*  【花雕动手做】音乐可视化系列小项目(01)---LED节奏灯  项目之二:随着音乐节奏而闪烁的三色LED灯模块  实验接线:声音模块数字端口DO接Uno的D2,D11接LED灯*/int soundSensor = 2;int LED = 11;boolean LEDStatus = false;void setup() {pinMode(soundSensor, INPUT);pinMode(LED, OUTPUT);}void loop() {int SensorData = digitalRead(soundSensor);if (SensorData == 1) {if (LEDStatus == false) {LEDStatus = true;digitalWrite(LED, HIGH);}else {LEDStatus = false;digitalWrite(LED, LOW);}}}

实验场景图:

实物场景动态图:


与作者交流:
http://bbs.eeworld.com.cn/thread-1181398-1-1.html