Example #1
0
def createSnareFft():
	# read in the snare drum sample
	files = glob.glob('./snare_samples/*.wav')
	matrix = numpy.array([])
	for filename in files:
		print filename
		rate, data = wave_reader.readWav(filename)
		data = wave_reader.stereoToMono(data)
		features = analyzer.getFrequencies(data)
		matrix = build_data.addToFeatureMatrix(matrix, features[0:2000])
	build_data.saveFile('snaredata.csv', matrix)
Example #2
0
def readSong(filename, segTime = 0.05):
	# read in the input song
	rate, data = wave_reader.readWav(filename)
	data = wave_reader.stereoToMono(data)
	# sample every 0.1 seconds by default
	segSize = segTime * rate
	matrix = numpy.array([])
	print 'reading in song...'
	start = 0
	end = segSize
	for i in range(0, int(math.floor(len(data)/segSize))):
		data_seg = data[start:end]
		start += segSize
		end += segSize
		features = analyzer.getFrequencies(data_seg)
		matrix = build_data.addToFeatureMatrix(matrix, features[0:2000])
	outfile = os.path.splitext(filename)[0] + '.csv'
	build_data.saveFile(outfile, matrix)
	return matrix
Example #3
0
                if note_amp[note_freq_sort[j]] < max_amp * 0.3:
                    break
                if note == None or note_name.index(note) > note_freq_sort[j]:
                    if last_note == None or abs(note_name.index(last_note) - note_freq_sort[j]) <= 7:
                        note = note_name[note_freq_sort[j]]
        f.write("%.4f\n"%np.sum(note_amp))
        if note != last_note:
            if last_note != None:
                toRtn.append((last_note, start_time, time))
            last_note = note
            start_time = time"""
    f.close()
    #    if last_note != None:
    #        toRtn.append((last_note, start_time, t[1]*len(t)))
    #print toRtn
    #print len(toRtn)

    return toRtn


if __name__ == "__main__":

    #    f = open("note_freq.txt", 'w')
    #    for i in range(len(note_name)):
    #        f.write("%s: %.4f\n" % (note_name[i], note_freq[i]))
    _, _, fr, data = readWav("rec")
    #    qualify(data, fr)
    #    print("hello")
    recognize(data, fr, 195)
#    print(freqToNote(500))
Example #4
0
def wav2mid(wav_file_name, tempo=120):
    _, _, fr, data = readWav(wav_file_name)
    note_time_list = recognize(data, fr, tempo)
    outMidPath = writeMid(note_time_list, tempo)
    print outMidPath