Instantly share code, notes, and snippets.

# jul/spect2.py Created Jun 24, 2012

What would you like to do?
dumb spectogram
 from scikits.audiolab import Sndfile import numpy as np import pylab as plt import csv import matplotlib.mlab as mlab from math import floor, log #NFFT windows make calculus faster if a power of 2 closest_2_power=lambda x : 1<= v >= _min: note_name+=[k] note_freq+=[v] return note_name, note_freq _min_sec=5 _max_sec=10 _begin_at=_min_sec * koln.samplerate _stop_at=_max_sec * koln.samplerate #skipping n seconds koln.read_frames(_begin_at) sample=koln.read_frames(_stop_at-_begin_at) #plt.interactive(True) ## something like the time window used to higher the resolution ## we take 1 measure 4 beats + shannon => * 2 NFFT=int(8.0* koln.samplerate/float(tempo)) #we want to see the round ## well I let 1 black note overlap noverlap=NFFT>>2 ## A4 flat frequency but I am french we say la not A la=442.0 ## freq lowest limit lower=13 ## A4/2 => A3 higher=la/2 plt.interactive(False) ## testing all colormap because ... it is hard to find the good one maps=[m for m in plt.cm.datad if not m.endswith("_r")] for _map in maps: print _map plt.clf() fig=plt.figure( figsize=(30.0,14.0)) ax=fig.add_subplot(111) pxx, freq, t,cax=ax.specgram( ## right chan sample[:,0], ## for getting the time scale Fs=koln.samplerate, ### Window size NFFT=NFFT, ## overlap size noverlap=noverlap, ### colormap cmap=plt.get_cmap(_map)) ax.set_title(str(_map)) note_name,note_freq=ticks_in_range(lower,higher) ax.set_ylim(lower,higher) ax.set_yticks(np.array(note_freq)) ax.set_yticklabels(note_name) step= 1.0 * ( _max_sec - _min_sec ) * tempo / 60 step=1/step ### trying to graph the ticks according to the guessed tempo ax.set_xticks(np.arange(0 ,1.0*( _max_sec - _min_sec), step, float)) ## colorbar is nice fig.colorbar(cax) ##saving result plt.savefig("sono.%s.png" % _map)

### mouuff commented Jun 25, 2012

 Ça gère ;)

### bpgergo commented Jun 25, 2012

 You have left one line from your code listing: maps=[m for m in plt.cm.datad if not m.endswith("_r")] Nice post though, thank you. (I mean this one http://beauty-of-imagination.blogspot.fr/2012/06/color-of-music-why-not-discover-pythons.html)
Owner

### jul commented Jun 25, 2012

 corrected thx