Requirements to run:
	-Python (v2.5 or greater, probably not compatible with 3.0) http://www.python.org/download/
	-Python libraries:
		Pygame (http://www.pygame.org)
		NumPy (http://numpy.scipy.org)
	-code should be platform independent, but was only tested in linux.

Scripts
=======
All of the included scripts were written by Eric Billingsley


2 Main scripts:
-kmeans.py
	Purpose: This script runs kmeans clustering on a data file (files data.txt and datatransposed.txt are provided)
			 The resulting clusters are stored in outputfile. A visualization of the clusters is also provided as
			 the clustering is done.
	Usage: python kmeans.py datafile numberOfMeans userSequenceLength compSequenceLength percentageOfData 						outputfile
-keyComp.py
	Purpose: This script runs a virtual keyboard than can be played using the lower part of your computer keyboard. 
			It takes as input a file storing clusters produced by kmeans.py (clusters.pickle is provided).
	Usage: python clusterFile autoTranspose(0 or 1)

Other scripts:
-databuilder.py
	Purpose: This script takes a directory of midi files and finds sequences of harmonizing notes. 
		(data/ and dataTransposed/ are provided)
	Usage: python databuilder.py dataDirectory outputFile sequenceLength
-wavgenerator.py
	Purpose: I used this to create the sound files used in keyComp.
	Usage: python wavgenerator.py multiplier fileSuffix lvolume rvolume

