<div dir="ltr">I have a general computer science question first, and then I will ask if Haskell might be helpful for this.<div><br></div><div>I'm researching "algorithmic music composition," the construction of musical compositions through choices made my algorithms. No piece of music is ever 100% human-composed or 100% algorithmic -- so to be more clear, I'm interested in researching "musical fitness functions" that produce good results when searching the music space. Anything the computer composes will be listened to by me, and only the most promising fitness functions will be explored in greater depth.</div><div><br></div><div>So my general question is about the following idea --</div><div><br></div><div>So in the course of generating lots of musical examples, and rating them as "good" or "bad," I'll end up with a database that can perhaps be "mined" for new fitness functions. I would start with a question. A random example of a question would be  "is there a pattern in the density of dissonance, such that more dissonance in certain places in the composition tends to make it better (or worse)?" I would suspect, out of pure intuition, that it does, but I may not know the exact details. For instance, I might not know if dissonance matters more in certain places within a measure. So I could code up something that looks for patterns among the good and bad musical examples in my database to see if it can find something specific.</div><div><br></div><div>So is this called "data mining" or something else?</div><div><br></div><div>Second, are there any Haskell libraries that can help with this task?</div><div><br></div><div>Thanks,</div><div>D</div></div>