[Cs254f11] My plan

Wm. Josiah Erikson wjerikson at hampshire.edu
Mon Oct 17 11:13:02 EDT 2011


So I'm now messing about with reading in files and putting them into 
data structures that I can do useful things with, but before I get too 
deep into committing myself to particular methods, I want some people 
who know more than me to read over my plan and tell me if they see any 
big problems with this other than the questions I have already 
identified below that I will have to figure out. Comments from my code:

;I'm going to attempt to evolve a program that has the same opinions of 
various MIDI files that I do.
;I'm going to listen to 20-50 publicly available MIDI files and score 
them, then hardcode those scores
;into this program. Then I'm going to covert said MIDI files into .csv, 
and attempt to evolve some scoring
;method that comes up with the same scores for these files that I do. 
I'm going to do this without teaching
;my program very much about how the MIDI file is formatted, so my 
evolutionary "soup" will be fairly dumb.
;The idea behind this is that one of the things that GP does well is to 
find patterns in things that we don't
;understand very well, and in that light, I ought to be able to evolve a 
music critic without teaching it the
;format of MIDI files - it will try sampling the MIDI file in lots of 
random ways, applying random scores (think
;this through - maybe actually I have to always apply the same scores? I 
can't have randomness twice, unless
;both randomnesses are factored into making that "genome" unique, 
otherwise I'll get faulty evolution), then
;applying the same set of "soup components" to all of the MIDI files, 
comparing the scores to my scores, adding
;up the difference, and then that will be the fitness value of that 
particular "soup mix" or genetic code.
;Each generation will have, say, 20 different "soup mixes". I will pick 
the two that have the best fitness values,
;breed them together and randomly mutate them (how, exactly?) to get 20 
new ones, them start over. I will stop
;after either an arbitrary number of generations or when the fitness 
value goes below x, and then see what I get!

Thanks in advance for any feedback!

-- 
Wm. Josiah Erikson
Network Engineer
Hampshire College
Amherst, MA 01002
(413) 559-6091



More information about the Cs254f11 mailing list