欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python實現(xiàn)音樂節(jié)奏可視化效果

 更新時間:2023年06月01日 16:06:31   作者:Python技術(shù)  
這篇文章主要為大家詳細(xì)介紹了如何基于Python語言實現(xiàn)音樂節(jié)奏可視化效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

國外有個網(wǎng)友分享了他的python音樂節(jié)奏可視化方案。上方的視頻就是用他的方案可視化得到的結(jié)果,大家可以欣賞一下。

歌曲節(jié)奏越強(qiáng),顏色變化越絢麗?,F(xiàn)在很多舞蹈視頻制作需要背景變色,拍攝時可以用燈光布景,另一種方式可以用“色卡”,比如用上面python做出來的“色卡”做背景,我們看看剪輯效果:

開場的“這夏天”文字顏色變幻,中間天空的顏色變化,都是跟著音樂節(jié)奏走的,豐富了視頻的表現(xiàn)力。

如果這里不用python,靠自己剪輯去卡音樂節(jié)奏和添加顏色,很容易將人勸退。

下面給大家介紹一下怎么使用這份代碼。

首先安裝我們所需要的依賴模塊:

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

代碼架構(gòu)分為兩個部分,一個是用于計算頻譜的 AudioAnalyzer.py,一個用于渲染生成動態(tài)視頻的 main.py

它是基于pygame實現(xiàn)的,pygame.draw.polygon(surface, color, points, width)畫多邊形。參數(shù)width控制顏色填充范圍,默認(rèn)為0,我們用一個代碼設(shè)置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()

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

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循環(huán)和ticks對畫面中的圖像進(jìn)行實時渲染。

渲染的代碼比較長,就是一些計算柱體長度的過程,這里就不贅述了。

如果你想要將你的音樂用這份代碼進(jìn)行可視化,僅需要修改main.py的第5行代碼:

from?AudioAnalyzer?import?*
import?random
import?colorsys

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

如果你想優(yōu)化生成的動態(tài)圖像的顏色,可以修改rnd_color函數(shù),該函數(shù)控制圖形顏色的變化:

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)]

如果你想修改生成的動態(tài)圖像的形狀,比如說去掉中間那個圓,僅需要這么改:

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

將radius直接設(shè)為0,或者直接將這行代碼注釋掉即可:

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

最后,我們換一首歌看看效果:

到此這篇關(guān)于基于Python實現(xiàn)音樂節(jié)奏可視化效果的文章就介紹到這了,更多相關(guān)Python可視化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python函數(shù)進(jìn)階與文件操作詳情

    Python函數(shù)進(jìn)階與文件操作詳情

    這篇文章主要介紹了Python函數(shù)進(jìn)階與文件操作詳情,文章為榮啊主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • python 如何在 Matplotlib 中繪制垂直線

    python 如何在 Matplotlib 中繪制垂直線

    這篇文章主要介紹了python 如何在 Matplotlib 中繪制垂直線,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • pytorch實現(xiàn)梯度下降和反向傳播圖文詳細(xì)講解

    pytorch實現(xiàn)梯度下降和反向傳播圖文詳細(xì)講解

    這篇文章主要介紹了pytorch實現(xiàn)梯度下降和反向傳播,反向傳播的目的是計算成本函數(shù)C對網(wǎng)絡(luò)中任意w或b的偏導(dǎo)數(shù)。一旦我們有了這些偏導(dǎo)數(shù),我們將通過一些常數(shù)α的乘積和該數(shù)量相對于成本函數(shù)的偏導(dǎo)數(shù)來更新網(wǎng)絡(luò)中的權(quán)重和偏差
    2023-04-04
  • python異步IO的項目實踐

    python異步IO的項目實踐

    本文主要介紹了python異步IO的項目實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Python對小數(shù)進(jìn)行除法運算的正確方法示例

    Python對小數(shù)進(jìn)行除法運算的正確方法示例

    這篇文章主要介紹了Python對小數(shù)進(jìn)行除法運算的正確方法示例,正確的方法是需要轉(zhuǎn)換成浮點數(shù),否則永遠(yuǎn)不會得到正確結(jié)果,需要的朋友可以參考下
    2014-08-08
  • python開發(fā)之基于thread線程搜索本地文件的方法

    python開發(fā)之基于thread線程搜索本地文件的方法

    這篇文章主要介紹了python開發(fā)之基于thread線程搜索本地文件的方法,以完整實例形式分析了Python基于多線程處理搜索問題的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2015-11-11
  • Python實現(xiàn)通過文件路徑獲取文件hash值的方法

    Python實現(xiàn)通過文件路徑獲取文件hash值的方法

    這篇文章主要介紹了Python實現(xiàn)通過文件路徑獲取文件hash值的方法,結(jié)合實例形式分析了Python針對文件進(jìn)行hash運算的實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-04-04
  • 使用pytorch進(jìn)行圖像的順序讀取方法

    使用pytorch進(jìn)行圖像的順序讀取方法

    今天小編就為大家分享一篇使用pytorch進(jìn)行圖像的順序讀取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python中shutil模塊的學(xué)習(xí)筆記教程

    Python中shutil模塊的學(xué)習(xí)筆記教程

    shutil模塊是一種高層次的文件操作工具,類似于高級API,主要強(qiáng)大之處在于其對文件的復(fù)制與刪除操作更是比較支持好。下面這篇文章主要介紹了Python中shutil模塊的相關(guān)教程,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-04-04
  • python如何實現(xiàn)異步調(diào)用函數(shù)執(zhí)行

    python如何實現(xiàn)異步調(diào)用函數(shù)執(zhí)行

    這篇文章主要介紹了python如何實現(xiàn)異步調(diào)用函數(shù)執(zhí)行,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07

最新評論