Computer music

Is there a different way to compose music?

I don’t have the answer, but I’m interested in the question.

Of course, I’m really interested in automated computer composition, but a few things are blocking my progress in that area. 1) The algorithms I’ve come up with are too computationally demanding. Oh the things we humans could do with more computer power. That’s always a problem when you’re trying to do something that’s never been done before with computers, isn’t it? And that’s part of the reason it’s never been done. 2) I lack an understanding of how we humans perceive music. I think most people do. We can’t create a program that writes music like humans if we don’t understand how humans do it. Without that knowledge, we’re basically creating algorithmic and/or recombinatorial music, which can certainly be interesting and sometimes convincing, but it’s not the Holy Grail of the subject (at least, it’s not my Holy Grail).

Anyway, earlier today I was daydreaming of creating a programming language (for fun), and then I thought, hmmm… what if I create a programming language designed to help with the composing process? And I thought, well… that’s just dumb. But I kept thinking, well, how could the composing process be changed? Currently, I just use Overture to click in notes. I think these days there are two main ways to compose music: 1) Write down the notes. Either click them in to a notation program on a piano roll or a blank staff. Or, be old school and use tangible staff paper and a quill pen. 2) Play the music on an instrument. Piano, perhaps. Or even sing it.

Now, some people say “no, I compose in my head!” Oooh, what a genius you must be! I don’t think. All composers compose in their heads. The “composing process” I’m referring to is a matter of getting that music out. You either play it (and perhaps make a sound recording), or you create corresponding graphical symbols (sheet music) to represent how to play it (for either the computer to play, or other humans). What can make composing completely in the head difficult is mainly memory, not lack of intelligence. Writing down or recording the music helps solve this problem. They are processes to aid you in your act of creation while you compose in your head. If you have a good memory and are able to compose a piece completely in your head, don’t look for any praise from me, I really don’t think that’s a very amazing feat.

(On a side note, I think sometimes the composing process is mystified and romanticized to inhumanly heights by people who just aren’t as interested in it. We once had an article in the paper about a local teenager who composed a piece of music for something, and the writer seemed very amazed that a 15 year old could *gasp* write music. Either the writer was just being gracious, or he didn’t realize just how many young composers are out there, and how good they can be. Really, in any art there’s always talk of certain artists being “geniuses” and “prodigies” but, in my opinion, it’s mostly just a romanticizing. Anyone can become “great” with enough practice (it might even be easier to learn when you’re younger, making prodigies even less amazing). “Greatness” is subjective, and fame is an emergent property. People say “we don’t have any Rembrandts today!” or “we don’t have any Mozarts today!” Yes we do, they just haven’t been dead for hundreds of years yet. These artists are put on such romantically high pedestals it seems impossible to compare them to non-famous artists today. But I think the skill level is definitely there. The fame takes time. And you can be “great” (though probably not famous) at any art you’d like… if you’re willing to put in the hours… and it will take some long lonely hours of practice and study. But I do believe that genius is mostly hard work, not a mystical God-given gift given only to a few fortunate fellows (maybe the desire to to do all the required work is… it’s a gift, and a curse… usually when one daydreams of being a genius, one dreams of it coming easily). I might’ve already said all this is some past blog post, but I believe it and it’s a view that not many people seem to share, I think… as far as I can tell. Really I think it’s because people don’t like to think of fame as an emergent property but rather as something that’s destined for objectively “great” people. And that stems from our natural psychological problem of induction, of trying to find cause-and-effect processes where they don’t exist, of noticing patterns and implying improper things from them. So really everyone should just read The Black Swan: The Impact of the Highly Improbable. Awesome book.)

Where was I?

Ah yes, the composing process…

So, I’m trying to think another system of music representation. Sheet music is designed for a human to read and play the music back. Piano roll view is kind of an “easier to see” version for manipulating notes on a computer, but almost the same thing as regular notation. Both are really just a graph (or a collection of graphs) of time (x-axis) vs frequency (y-axis).

What if we add another axis?

That would be dumb.

But I’d still like to explore the possibilities of designing some other kind of representational system that’s designed for composing instead of for a human to play back. This system might be jarring for composers to use, at least at first. (“At least at first” hahaha… get it?) It would require composers to think in a different way. But that’s the point. Well, really the point is to allow composers to compose faster, and so the point is to experiment and see if there’s way to compose faster if we think about the process in a different way.

I have no specific ideas for this system right now. I’m at work, and I’m just blathering off the top of my mind to help the time go by. Two not-very-specific ideas I have for this system (I’m not sure if they’re any good):

1) Representing changes instead of just frequencies. What if we said something like “up 2, up 3, down 4, up 2” instead of naming notes?

2) Grouping notes. Right now, if you have 6 notes, you have to write all six notes. But what if we group these 6 notes, and then work with that group, and the changes that happen to that group? And then we can go farther and build groups of groups, and look at how those groups are different from one another, and how they’re the same. What kinds of patterns would we find and how could we work with them to compose new music?

I’m not really sure, and none of this may be very innovative anyway, but I am interested in exploring it and getting into more specifics about it.

The goals of the system would be to:

1) Compose faster (i.e. with greater ease). This would in turn allow us to…

2) Explore more possibilities while composing.

And, if possible:

3) Make composing more fun. And thus, attract more people to the act of composing, and help procrastinators and people with composer’s block.

Well, that’s my blather for today. I’ll continue to post my thoughts on this as I have them…

If you read all that, I have two things to say:

1) What’s the matter with you?!

2) Thank you, you are to be commended for your bravery and endurance.

P.S. It was nice to see Michael Giacchino win the Oscar for best score (even though the presenters had no idea how to pronounce his name).  I do love his Pixar film music work, he’s doing some of the best film music today, using those things called melodies.

By S P Hannifin, ago
Computer music

Paul Williams writes article about nothing

Does music need “professional” musicians?

Paul Williams, the songwriter and current president of ASCAP, recently wrote this article.  It’s pretty short, but one thing is missing from it: a point.  The only point I can see is that “piracy is bad.”  Well, duh.

Anyway, I’m going to go off on a little tangent here.  I think at some point in the future (perhaps still hundreds of years away) people will no longer be able to make a living off of writing music.  One reason is quite simple: computers will write music.  People won’t need to.  People will continue to write music, though, because it’s fun.  People being able to make a living off of writing music is, from what I can tell, a pretty recent phenomenon in the history of human existence.  (As are the sorts of economies we have now, for that matter.)  The creation of beautiful music doesn’t depend on people making a living off of it.  The reason people defend and fight for being able to make a living off of it is because it’s a dream come true! Being able to make a living off of doing something you love is just fantastic.  (At least, I imagine; it still hasn’t happened to me yet, but I’m working on it!)

So, I’ll whole-heartedly agree that piracy is bad, and I’ll defend protocols and systems that try to counter it (as long as they don’t get in the way of what us legitimate non-pirates want to do, which they do too often), but I won’t do this in defense of the music.  The music will always exist.  Piracy is bad for moral reasons, not monetary reasons.  Well, it is bad for monetary reasons, but I’m not against it just because I want more $$$$, like perhaps a number of other composers and publishers (and PROs?).

My automatic music generator

Recently, I’ve been continuing work on my computer program that will, if my daydreams come true, write music.  OK, it’s still such a difficult task that I probably won’t live to see (or hear) it work, but it’s still a puzzling challenge that obsesses me sometimes.  Anyway, I spent the day thinking about new algorithms to try out.  To help me do this, I began writing a semi-fictional dialogue.  In it, I appear as a character and I meet with William Wobbler, a character from my recently finished screenplay The Melody Box.  The two of us then contemplate how to create a computer program that can write music.  It’s a lot of fun to write, and if I ever succeed at my goal of creating this program and if it makes me insanely rich (a dream that motivates me), then I will someday release it to the public so that everyone can learn how it was done, and how my thought process worked while creating it.  Or if I die having failed (which is more likely), I can leave it for generations after me to perhaps have something to work with (though the possibility remains that it is and will forever be useless garbage, but, I don’t know, somebody out there might read it).

I guess that’s it.  I have to go back to work tomorrow.  Snow got me an entire week off, but the vacation’s over now!  (The week off did give me a torturous glimpse of what life might be like if I could ever make enough money writing or composing to work from home.  I risk becoming a hermit then, but it’s still something I cannot stop myself from desiring.)

By S P Hannifin, ago
Computer music

Working

I’ve been working a bit more on my melody mixer creator thing; I’m working on expanding its abilities so that it will be compatible with any size melody in any time signature. I think I’ve finished planning out the necessary algorithms, now just programming awaits. And there will be quite a lot that will need to be reprogrammed, as there were quite a few shortcuts I was able to take when programming it to work with just one size melody. I’ve also been writing a book on my melody mixing algorithmic methods. It’s obviously not very long right now, but as I continue to program and explore this area of computer generated music it will hopefully chronicle all my explorations and algorithmic design decisions. It will probably be finished in 10 or 20 years. Or never.

Haven’t been up to much else lately… getting a bunch of hours at my part-time job, which is good for the money, but when I come home I tend to sit in front of the TV, surf the net, or play The Sims 3, which are all fun, but not very productive.  I can’t say I really want a full-time job…

By S P Hannifin, ago
Computer music

Programming and melodies

[display_podcast]

Been a while, huh?  I haven’t been up to much besides programming.  I did compose a wee bit of music for my album, but my programming has been too much of an obsession lately for me to get much else done.  (I’m also way behind on my email, a couple hundred messages still unread.  Of course, most of it is spam or newsletters I don’t care about, but I’m sure there are some people I need to get back to in there too… and a bunch of YouTube comments I want to respond to eventually.)

Anyway, hopefully you won’t mind it if I just blather a bit on what I’ve been working on.  I started out writing a book on melody, though I didn’t get much writing done at all; I mostly just planned out how I was going to analyze melodies.  Then I started writing a computer program that could be fed melody information and spit out an “analysis” of that melody (“analysis” being mostly a collection of statistics).  It was my intention to use these statistics in my book, but then I decided to try reversing the process.  So I made my program take a melodic analysis and create a melody for it.  That in and of itself isn’t special, it just gives you back the original melody you put in.  But if you change that analysis around a bit, based on similarities of other melodic analyses (and some randomness), you get … new melodies!  Or at least melodies that are variations of the original melodies.  In other words, the more similar two melodies are, the easier they will mix.  The more different they are, the more my program will just regurgitate one of them, after having been unable to mix them that well.

That said, I’ve so far only tried a very limited amount of melodies… probably only around ten at this point.  It’s kind of a tedious process because right now the program only takes text files as input and outputs another text file.  So every melody you want the program to use you have to convert into numbers, and then to hear the melody it comes up with, you have to convert numbers back to notes.  It’s an utter pain!

So right now I am trying to make some sort of a GUI (graphical interface).  I’m working with Java, and I know just about nothing about Java’s GUI, or how to program 2D graphics for it.  Sun Microsystem’s website has a lot of resources about it, but no real solid tutorials that I could find; they’re resources are kind of all over the place and I’m having a lot of difficulty figuring out how to do what I want.  So I might go to the bookstore here soon and see if there are any good books on programming 2D graphics with Java.

My eventual ambition is to create something worth selling, so I don’t really have any plans to share the code or the specifics of exactly how the program works yet, though I admit that I definitely do not think it’s something so incredibly complex and amazing that it will change the world of music… still, I think I personally would really enjoy creating melodies with it… if I can make an easy-to-use GUI.  The logic behind how the program works is pretty much all in place though, though there are some areas that could use improvement.  But I really think the program needs to be using more the 10 or so melodies I’ve given it, so I’d really like to have a nice GUI that would make feeding it melodies much easier, faster, and less tedious.

I’ve uploaded some melodies it came up with at:

http://www.wizardwalk.com/melodies/

… some of them sound awful, some of them have pretty good ideas I think, and some sound too much like one of the melodies fed in (especially that Beethoven’s Ninth one).

So, that’s what I’ve been up to!

By S P Hannifin, ago
Computer games

Generative systems, games, and music

[display_podcast]

This is the new blog! Hope you like this new WordPress version! As you may be able to see, I was able to import all my old posts so I’m not starting over completely from scratch.

Perhaps the most significant change to this new blog is that I’m now trying to make a little podcast out of it. Hearing a voice may be somewhat more interesting, or at least more fun for me to produce. That said, I’m sure I won’t be able to record something for every single post, just as I know I can’t post every single day, but I’ll see how it goes.

I got my 2nd rejection slip of ’08 earlier this week for my short story Oberon’s Paradise. I have three or four more magazines I want to try selling it to, then I don’t think I’ll be able to resist the urge to just podcast it with some incidental music, as I think that would be fun to create. I have a few other short stories I’m working on, but nothing near completion yet. And I should really get back to writing my other two novels as well sometime.

SporeAlso earlier this week, I found a very interesting video on YouTube with game designer Will Wright and some musician that I’ve never heard of. They were talking about generative systems, which Wikipedia calls “systems that use a few basic rules to yield extremely varied and unpredictable patterns.” So, they are basically systems which are good at producing emergent properties. The video from YouTube is just a clip from a much longer talk they gave (available to see here) which I could not resist sitting through. In the longer video, you get to see Will Wright talk about the role of generative systems in games and, more specifically, in the upcoming game Spore. He also touched briefly on the subject of applying generative systems to narrative stories, which I also thought was pretty fascinating.

Anyway, this is the YouTube clip.

One other thing that caught my attention in the longer video. Take a look at what they say about music:

Will Wright: Can you imagine any sort of even this past computational filter that would pre-listen to the music, analyze the structure, look for a pattern, whatever, that would at least prune out the 90% that you obviously don’t want to listen to and let you focus your efforts on the 10% that has some promise?

Brian Eno: Would you like to work on that for me?

Will Wright: Sure, I would love to. You just have to give me the algorithms, I’ll cut it right up for you.

Brian Eno: No, it’s, funnily enough there’s been a lot of research into that, because you know there are always people trying to figure out how you write a hit.

Will Wright: Oh, I see. Formalizing the–

Brian Eno: Something I wouldn’t mind knowing about.

Will Wright: The hit generator.

Brian Eno: So there’s been all sorts of attempts to do that, but they’ve been astoundingly unsuccessful so far.

I would agree that for the most part, most people exploring that area have been unsuccessful (though I honestly believe it’s only a matter of time) but I wonder if Mr. Eno is at all familiar with David Cope’s awesome work? His computer program doesn’t write music in exactly the way Will Wright describes, but I’d still say Cope’s program is, in a way, a form of a generative system.

So, as I have started writing a book on the art of melody (or started planning it, really), I think I will definitely explore the subject of a generative system for melody. I’m not sure I’ll do anything really new, but it must be a fascinating area of study.

Oooh, I just visited Mr. Cope’s site, and it looks like he’s got two free rough-draft books up temporarily, one on musical suggestions for beginning music students and one on … of all things, board games! Games, music, generative systems, it’s all related! I love it!

😀

By S P Hannifin, ago