Skip to content

Commit 9a8abcb

Browse files
authored
Add files via upload
1 parent 18f198b commit 9a8abcb

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

Sound-Virtualizer/README.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Python sound virtualizer created by nghhai1090

Sound-Virtualizer/soundplayer.py

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
from tkinter import *
2+
import time
3+
import pyaudio
4+
import numpy as np
5+
import wave
6+
class virtualizer(object):
7+
def __init__(self):
8+
self.root = Tk()
9+
self.root.resizable(width=False, height=False)
10+
self.canvas = Canvas(self.root, width=520, height = 400,bg='black')
11+
self.canvas.pack()
12+
self.items=[]
13+
for i in range(50) :
14+
self.items.append(self.canvas.create_rectangle(10+10*i, 375, 20+10*i, 375, fill="blue"))
15+
self.canvas.pack()
16+
self.root.after(0, self.animation)
17+
self.root.mainloop()
18+
def animation(self):
19+
track = 0
20+
CHUNK =1024
21+
RATE = 44100
22+
filename = 'your wav file here'
23+
wf = wave.open(filename)
24+
w= wave.open(filename)
25+
p=pyaudio.PyAudio()
26+
#stream=p.open(format=pyaudio.paInt16,channels=1,rate=RATE,input=True,frames_per_buffer=CHUNK)# get sound from mic
27+
stream=p.open(format=p.get_format_from_width(wf.getsampwidth()), channels = wf.getnchannels(),rate=wf.getframerate(),output=True)
28+
peak=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
29+
a= "a"
30+
while a!= "nan" :
31+
#print(wf.getframerate())# get sound from mic
32+
#while True:# get sound from mic
33+
#datas=stream.read(CHUNK)# get sound from mic
34+
datas= wf.readframes(CHUNK)
35+
datab = np.fromstring(datas,dtype=np.int16)
36+
peak1= np.average(np.abs(datab))
37+
a= str((20*peak1/2**14))
38+
if(a!='nan' ):
39+
peak.pop(0)
40+
peak.append(peak1)
41+
for i in range(50):
42+
self.canvas.coords(self.items[i],10+i*10,375,20+i*10,375-10*int((20*peak[i]/2**14)))
43+
self.canvas.update()
44+
stream.write(datas)
45+
else : print("finish")
46+
stream.stop_stream()
47+
stream.close()
48+
p.terminate()
49+
virtualizer()

0 commit comments

Comments
 (0)