太好玩了!用Python做音乐节奏可视化!

这篇具有很好参考价值的文章主要介绍了太好玩了!用Python做音乐节奏可视化!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家注意:因为微信最近又改了推送机制,经常有小伙伴说错过了之前被删的文章,比如前阵子冒着风险写的爬虫,再比如一些限时福利,错过了就是错过了。

所以建议大家加个星标,就能第一时间收到推送。👇

太好玩了!用Python做音乐节奏可视化!

国外有个网友分享了他的python音乐节奏可视化方案。上方的视频就是用他的方案可视化得到的结果,大家可以欣赏一下。

歌曲节奏越强,颜色变化越绚丽。现在很多舞蹈视频制作需要背景变色,拍摄时可以用灯光布景,另一种方式可以用“色卡”,比如用上面python做出来的“色卡”做背景,我们看看剪辑效果:

开场的“这夏天”文字颜色变幻,中间天空的颜色变化,都是跟着音乐节奏走的,丰富了视频的表现力。

如果这里不用python,靠自己剪辑去卡音乐节奏和添加颜色,很容易将人劝退。

下面给大家介绍一下怎么使用这份代码。

首先安装我们所需要的依赖模块:

pip install matplotlib
pip install librosa
pip install numpy
pip install pygame

代码架构分为两个部分,一个是用于计算频谱的 AudioAnalyzer.py,一个用于渲染生成动态视频的 main.py

它是基于pygame实现的,pygame.draw.polygon(surface, color, points, width)画多边形。参数width控制颜色填充范围,默认为0,我们用一个代码设置30试一下:

import pygame
import sys
pygame.init()
 
display = pygame.display.set_mode((300, 300))
display.fill((255, 255, 255))
 
pygame.draw.polygon(display, (0, 0, 255), 
                  [(120,120), (40,160), (40,220), 
                  (200, 220), (200,160)], width=0)
 
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

太好玩了!用Python做音乐节奏可视化!


回到本案例,部分代码如下:

pygame.mixer.music.load(filename)
pygame.mixer.music.play(0)

running = True
while running:

    avg_bass = 0
    poly = []

    # ticks
    t = pygame.time.get_ticks()
    deltaTime = (t - getTicksLastFrame) / 1000.0
    getTicksLastFrame = t

首先,通过pygame加载(load)音乐文件并播放(play).

然后,通过while循环和ticks对画面中的图像进行实时渲染。

渲染的代码比较长,就是一些计算柱体长度的过程,这里就不赘述了。

如果你想要将你的音乐用这份代码进行可视化,仅需要修改main.py的第5行代码:

from AudioAnalyzer import *
import random
import colorsys

filename = "D:\桌面\m1.MP3"

如果你想优化生成的动态图像的颜色,可以修改rnd_color函数,该函数控制图形颜色的变化:

def rnd_color():
    h, s, l = random.random(), 0.5 + random.random() / 2.0, 0.4 + random.random() / 5.0
    return [int(256 * i) for i in colorsys.hls_to_rgb(h, l, s)]

如果你想修改生成的动态图像的形状,比如说去掉中间那个圆,仅需要这么改:

pygame.draw.circle(screen, circle_color, (circleX, circleY), int(radius))

将radius直接设为0,或者直接将这行代码注释掉即可:

pygame.draw.circle(screen, circle_color, (circleX, circleY), 0)

最后,我们换一首歌看看效果:

交流群

时隔2个月,摸鱼学习交流群再次限时开放了。

太好玩了!用Python做音乐节奏可视化!

Python技术交流群(技术交流、摸鱼、白嫖课程为主)又不定时开放了,感兴趣的朋友,可以在下方公号内回复:666,即可进入,一起 100 天计划!

老规矩,酱友们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

太好玩了!用Python做音乐节奏可视化!

代码获取方式

识别下方公众号,回复:音乐可视化文章来源地址https://www.toymoban.com/news/detail-468541.html

到了这里,关于太好玩了!用Python做音乐节奏可视化!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • html+css+js本地音乐播放器,实现可视化音频频谱

    html+css+js本地音乐播放器,实现可视化音频频谱 之前用swing写了个本地音乐播放器(如下图),但是效果一言难尽,界面丑,功能bug也多,唉 所以后面又重新用html写了个,界面样式和功能方面,比swing写的好看、完善多了。 导入音乐(已完成) 展示列表(已完成) 列表双击

    2024年02月09日
    浏览(34)
  • 基于Web/SSM的音乐网站--87184(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

    随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景,运用软件工程原理和开发方法, 它主要是采 SSM 技术和 mysql 数据库来完成对系统的设计 。整个开发过程首先对 音乐网站 进行需

    2024年02月03日
    浏览(31)
  • 【html本地工具】html+css+js本地音乐播放器,实现可视化音频频谱

    html+css+js本地音乐播放器,实现可视化音频频谱 之前用swing写了个本地音乐播放器(如下图),但是效果一言难尽,界面丑,功能bug也多,唉 所以后面又重新用html写了个,界面样式和功能方面,比swing写的好看、完善多了。 导入音乐(已完成) 展示列表(已完成) 列表双击

    2024年02月14日
    浏览(28)
  • python三维建模可视化与交互,python三维建模可视化

    本篇文章给大家谈谈python三维建模可视化与交互,以及python三维建模可视化,希望对各位有所帮助,不要忘了收藏本站喔。 一、 内容介绍 人类是那么得有创造力,我们创造、发明、设计、生产了一切大自然没有直接给予我们的东西使我们的生活变得更轻松更美好。在过去,

    2024年01月23日
    浏览(44)
  • Python 数据可视化-文本可视化(词云图)

    这篇文章主要是教大家如何制作一个自定义个性化词云图,具体要求如下: 1.    文本内容使用文件content.txt的内容。如下图所示: 2.    字体任意选取。这里我选择的是极影毁片辉宋字体   3.    指定词云形状为文件222.png。如下图所示:   4.    设置文字颜色以背景图片

    2024年02月13日
    浏览(41)
  • 83 | Python可视化篇 —— Bokeh数据可视化

    Bokeh 是一种交互式数据可视化库,它可以在 Python 中使用。它的设计目标是提供一个简单、灵活和强大的方式来创建现代数据可视化,同时保持良好的性能。Bokeh 支持多种图表类型,包括线图、散点图、柱状图、饼图、区域图、热力图等。此外,它还支持将这些图表组合在一

    2024年02月13日
    浏览(30)
  • 81 | Python可视化篇 —— Seaborn数据可视化

    Seaborn是Python中一个基于Matplotlib的高级数据可视化库,它提供了更简单的API和更美观的图形样式,适用于数据探索和展示。在本教程中,我们将介绍Seaborn的基本概念和用法,并通过一些示例演示如何使用Seaborn来创建各种图表和图形。

    2024年02月14日
    浏览(28)
  • Python-Python基础综合案例:数据可视化 - 折线图可视化

    当前版本号[20230729]。 版本 修改说明 20230729 初版 效果一:2020年印美日新冠累计确诊人数 ​ 2020年是新冠疫情爆发的一年, 随着疫情的爆发, 国内外确诊人数成了大家关心的热点, 相信大家都有看过类似的疫情报告. 本案例对印度美国日本三个国家确诊人数的进行了可视化处理

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包