data mining, or something like it

I have a general computer science question first, and then I will ask if Haskell might be helpful for this. 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. So my general question is about the following idea -- 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. So is this called "data mining" or something else? Second, are there any Haskell libraries that can help with this task? Thanks, D

Hi Dennis.
I can't help you with an up to date data mining definition, but it sounds
like you're in the ball park.
Regarding your musical plans, try: http://donyaquick.com/kulitta/
And I think Paul Hudak did work in that general area years ago too, perhaps
at Yale.
Good luck.
Mike.
On 30 May 2017 2:53 pm, "Dennis Raddle"
I have a general computer science question first, and then I will ask if Haskell might be helpful for this.
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.
So my general question is about the following idea --
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.
So is this called "data mining" or something else?
Second, are there any Haskell libraries that can help with this task?
Thanks, D
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.

Just to be clear, I am looking for Haskell code or libraries that implement general strategies for data mining, if there is such a thing. I'm not looking for music-related Haskell code, as the goal of my project is to learn about algorithms that make music with features similar to my own style as a traditional composer, and that will require testing a lot of possibilities, maybe very different ways of going about it. D

Second, are there any Haskell libraries that can help with this task?
In my own experience, Data Mining is a very interactive task. You want to keep your feedback loop as tight as possible. Therefore the user interface becomes an important part of your setup. Text-based interfaces just don't cut it. And now consider the state of GUIs in the Haskell world… Personally I like [Knime] for Data Mining. Funnily enough it's written in Java (based on Eclipse), but you can see how most of it would translate beautifully to a functional language. Lots of maps and folds in disguise. Yet more interesting is that the style of visual data-flow programming that's used in it also lends itself well to music generation. In other words what you need might not exist yet, but you may be a perfect candidate to improve the state of GUIs in Haskell. ;) Cheers, MarLinn [Knime](http://www.knime.org/knime-analytics-platform)
participants (3)
-
Dennis Raddle
-
MarLinn
-
mike thomas