Nugroho's blog.

Tuesday, October 20, 2015

Working with Audio in Python

 What I did is read a .wav file, extract the raw audio data, (I use first 1/20 data for sample), transform it using Fast Fourier Transform, manipulate it (I only use the first cluster frequency spectrum ), transform it back using InverseFFT.

 I use matplotlib and numpy module to plot and compute.

 I also use sys and wave module as 'interface'.


import matplotlib.pyplot as plt
import numpy as np
import wave
import sys


spf = wave.open('violin2.wav','r')

#Extract Raw Audio from Wav File
signal = spf.readframes(-1)
signal = np.fromstring(signal, 'Int16')
fs = spf.getframerate()
print fs

#If Stereo
if spf.getnchannels() == 2:
print 'Just mono files'
sys.exit(0)

Time=np.linspace(0, len(signal)/fs, num=len(signal))
sample = []
st=[]
for i in np.arange(len(signal)/20):
sample.append( signal[i])
st.append(Time[i])

ft=np.fft.fft(sample)
pft=[]
for i in np.arange(len(ft)):
if i<500: data-blogger-escaped-ample="" data-blogger-escaped-else:="" data-blogger-escaped-from="" data-blogger-escaped-ft="" data-blogger-escaped-i="" data-blogger-escaped-ift="" data-blogger-escaped-ignal="" data-blogger-escaped-ime="" data-blogger-escaped-pft.append="" data-blogger-escaped-pft="" data-blogger-escaped-plt.figure="" data-blogger-escaped-plt.grid="" data-blogger-escaped-plt.plot="" data-blogger-escaped-plt.show="" data-blogger-escaped-plt.title="" data-blogger-escaped-pre="" data-blogger-escaped-rue="" data-blogger-escaped-sample="" data-blogger-escaped-signal="" data-blogger-escaped-st="" data-blogger-escaped-wave...="">
.





Monday, October 19, 2015

:)

 Melihat koreografi Bruno Mars dan The Hooligans, jadinya malah teringat Rhoma Irama dan Soneta

Friday, October 16, 2015

iWork Update on El Capitan

 My Pages, Number and Keynote received new feature.

 ...and hey, my view is increased twofold, :D

(And my Keynote on iPhone 4s is upgraded as well)







Sunday, October 11, 2015

Belajar.

Dulu belajar berbicara.

Sekarang perlu untuk belajar diam.

(The Tales of Tatonka)

Saturday, October 10, 2015

Pasir

Berapa nikmat yang diberikan kepadaku?

Ngawur,

kurang kerjaan.

Sana, mending hitung butiran pasir di pantai saja sana,

tu lebih sedikit, lebih gampang.

(terinspirasi status mbakYu)

Wednesday, October 7, 2015

Lagrange Interpolation using Python

 Here it is. We could set the order of interpolation by changing the value of k


from pylab import *
from random import uniform
k = 11

def l(t):
l = []
for i in arange (len(t)):
l.append(0.)
for j in arange(k+1):
lag = 1.
for m in arange(k+1):
if m!=j:
lag = lag * (t[i]-x[m])/(x[j]-x[m])
l[i] = l[i]+y[j]*lag


return l

def f(x):
f = []
for i in arange (len(x)):
f.append(0.)
f[i] = x[i]+uniform(-10,10)
return f

x = arange(0.0, 2.0, 0.1)
t = arange(0.,2.,0.001)
y = f(x)
z = l(t)

plot(x,y)
plot(t,z)
xlabel('x')
ylabel('y')
title('interpolasi')
grid(True)
axis([0,2,-111,111])
#savefig("test.png")
show()

.

Monday, October 5, 2015

Walking Sine on Visual Python GDisplay

 Look, the wrong way often provide a beautiful result. Yeah, it's not what the program should be, but still I like it, :)


from __future__ import division, print_function
from visual import *
from visual.graph import *

def f(x):
f = sin(pi*x+p)
return f
def g(x):
g = cos(pi*x)
return g

graph1 = gdisplay(x=0, y=0, width=600, height=400,
title='A vs. t', xtitle='t', ytitle='A',
foreground=color.black, background=color.white)
p = 0.
f1 = gcurve(color=color.blue)
f2 = gcurve(color=color.red)

t = arange(-2.,2.,0.01)
s = g(t)
while True:
rate(100)
f1.gcurve.pos=[] #delete this and look at the effect :)
f2.gcurve.pos=[]
u = f(t)
for i in arange(len(s)):
f2.plot(pos=((i-len(s)/2.)*.01,s[i]))
f1.plot(pos=((i-len(s)/2.)*.01,u[i]))
p = p + 0.01
if p >100:
p = 0



















323f (5) amp (1) android (12) apple (7) arduino (18) art (1) assembler (21) astina (4) ATTiny (23) blackberry (4) camera (3) canon (2) cerita (2) computer (106) crazyness (11) debian (1) delphi (39) diary (286) flash (8) fortran (6) freebsd (6) google apps script (8) guitar (2) HTML5 (10) IFTTT (7) Instagram (7) internet (12) iOS (5) iPad (6) iPhone (5) java (1) javascript (1) keynote (2) LaTeX (6) lazarus (1) linux (29) lion (15) mac (28) macbook air (8) macbook pro (3) macOS (1) Math (3) mathematica (1) maverick (6) mazda (4) microcontroler (35) mountain lion (2) music (37) netbook (1) nugnux (6) os x (36) php (1) Physicist (29) Picture (3) programming (189) Python (109) S2 (13) software (7) Soliloquy (125) Ubuntu (5) unix (4) Video (8) wayang (3) yosemite (3)