Web-based melody generator?

Grrr, my poor blog here has recently been getting overly abused by the WordPress comment spambots (of the “You, sir, have valuable information here, I will check back for more of your posts” variety) of which quite a few are slipping past WordPress’s Akismet plugin. I don’t want to have to moderate all the comments to prevent the spam from showing up, but if it doesn’t die down, I might have to do that, at least temporarily… for now, I’m just manually deleting the spam. How annoying…

Anyway, about that melody generator… I’ve heard some interest from people who don’t have Android and therefore can’t use my melody-generating Android app, so I’ve been hoping to make a web-based version of the program for some time now. And since I recently redesigned the algorithm to be much more efficient computing-power-wise, I think it should now be perfectly feasible for a server-side program to handle it. I don’t plan to abandon the Android update I’ve been working on, but it may be delayed a bit; a web-based melody generator just has a far larger market. So I’ve been working on that for the past couple days, really brushing up on my web development scripting skills. It will still be a lot of work, but I look forward to seeing how it will turn out.

Melody Generator 2.0 progress update

I have just about finished rewriting the main algorithms of my Android Melody Generator, though I have not yet reprogrammed all of the features. Here’s a ZIP file with 100 MIDI examples.

A few things about the examples:

– I am forcing every melody to end on the tonic
– I am forcing every melody to end with a perfect cadence
– All the melodies are 8 bars in length and in 4/4 time
– 8th notes are the smallest notes I allowed

Do the melodies sound better? They’re not on a human-composer level yet (well, I guess it depends on the human in question), but I do think they sound better than what the current version of the Melody Generator can produce.

The other big advantage of the rewrite should be the generator’s speed. I haven’t tested it yet on my phone, but my computer (which is, granted, a lot faster than a phone) can crank out over 1000 melodies a second. This is quite good, since my ultimate ambition is to have the generator crank out Mozartean symphonies, so we can’t have it wasting much time coming up with short simple melodies.

I am not exactly sure when I’ll upload the update to the Android market; there is still plenty of work to do. But I’m currently aiming for sometime in April or May.

Work started on Melody Generator 2.0

I’ve finally started working on a new version of my Melody Generator for Android. I’m pretty much rewriting all of the code for it, attempting to make the algorithm work more efficiently. Currently, parts of the program work by generating random sets of data and then looking through the data to see what’s usable. It works, but it can be pretty wasteful. (A bit Monte Carlo-ish — which is easier to program for melody generation, but not really needed.) I’m trying to redesign those parts so that they’ll just go “bing, bang, boom, done!” straight through, wasting no time generating and analyzing random piles of possibly unusable data. The new algorithms should also make it easier to add new features to the generator in the future.

Also, the resulting melodies should, according to my theory of melody, sound better, but I haven’t re-programmed enough of it to test it yet. (My theories work well enough for me as a human, but I think the ultimate test of completeness for a musical theory is getting a computer program to do it so all your human-based biases are sure to be out of the way.) If interested, let me know what new features you’d like to see… here are the features I’d like to add for Melody Generator 2.0 (in no particular order):

1. Any key possible, major or minor
2. 2-bar, 4-bar, 8-bar, 16-bar melodies possible (maybe more)
3. Triplets possible (16th note, 8th note, quarter note, half note)
4. Chromaticism possible
5. Pentatonic scale only possible
6. Note amount preference (do you want more notes or less notes?)
7. Syncopation preference (more or less syncopation?)
8. Fix interface problems (e.g. text buttons too small, etc.)
9. A few more bass note accompaniment options (e.g. play arpeggios?)

Heh… that’s a lot of work to do. It will take some time. Anyway, for now, I’m still on step one: rewrite the algorithms. Stay tuned…

Android Melody Generator released

I’ve been tweeting it, but I have to officially blog it too…

My Android Melody Generator app is now available on the Android market! I still need to redesign the website for it, melodygenerator.com and create some more graphics, but that will have to wait a day or two. Here’s my description:

Easily generate short tonal melodies for your songs or compositions.
Melody Generator for Android uses a new theory of melody to automatically generate melodies with the tap of a finger. Melody Generator can provide quick and easy assistance to composers and songwriters who need quick melody ideas, or to any music lover who just wants to play around. The current version of Melody Generator (Version 1) includes the following features:

– 8 bar melodies
– Time signatures: 4/4, 3/4, 2/4, 6/8
– Random chord progressions
– Random or custom key signatures (A, Bb, B, C, Db, D)
– Random or custom tempos
– Use of whole notes, half note, quarter notes, 8th notes, and 16th notes

The Melody Generator saves melodies as short MIDI files to your SD card, and allows you to browse through and listen to them after they are generated. Check out the website for sample output. Of course, more features are in the works!

The Android Melody Generator – coming this week

The first version of my Android Melody Generator app is complete. The only things left to be done do not involve programming:

– create an icon for it
– create some screenshots for it
– create a little website for it that includes examples and some documentation (I purchased the domain melodygenerator.com … it’s simple and to-the-point … nothing’s there yet, but there should be soon)

And that’s it! Then I will upload it to the Android market. It will be $4.99. Might even be done by this time tomorrow.

I will admit this: one of the problems I have with the app is that, at least for me, it becomes more addicting to just have it write melodies and listen to the results than to actually spend the time using the melodies in my own work. For me, it’s a bit more like a musical toy than a tool. But that’s just a testament to how much I enjoy it. And I’m obviously quite biased.

Is it done? Does it work? Am I finished? … I am finished. It works. It is done. I am a genius. Sean, you are an unadulterated genius. You are an indisputable extraordinary — is that bug? No, it’s not. You’re a fool. You are finished. And it begins…

Careful, careful, mustn’t get excited, mustn’t overdo it. Slowly, don’t rush, you’ll get used to it in no time. Look at it! Incredible! What an app to use, what an app to write! I shall be inspired, I shall turn out symphonies and operas, measures by the ton, at last I have an app, and everyone will know, everyone in the world, everyone will know that it’s here. It is here! It is here!

Melody generator – almost done

My Android melody generator is complete (at least what will be the first version of it).  All I have to do now is put in some anti-piracy measures (though I know no method is ever 100% effective) and figure out how to get it on the Android market.  Not sure how long that will take, but hopefully less than a week.  And, as I said last time, I need to create an icon for it, take some screenshots of it, and make a little website for it, but that stuff should take less than a day to do.

And who didn’t think I could do it?  Who doubted me?  Who said it couldn’t be done?  There’s a traitor amongst us who does not belong… maybe it is Glenn Close dressed as a man…

Melody project – update 9

Whew, I haven’t blogged yet this month. Animation Mentor starts back up in less than two weeks, on June 27th, and my semester-long leave of absence will be over. I’m excited to get back to animation, but I’m not excited about free time being reduced once again to almost zilch.

Anyway, I’ve been continuing to work on my Android melody generator app, hoping to get it completed before Animation Mentor starts. It’s coming along slowly but surely…

The interface is pretty much complete, and most of the functionality is there. (The interface is nothing fancy, just Android’s default style menus and such, but I’ve been focusing on the algorithms, not fancy interfaces.) I could probably try releasing it now if I really wanted. There are just a few bugs here and there to work out, and then I need to figure out what to do to actually get it on the market. And then I need make an icon for it, take some screenshots of it, and make a little website for it.

I won’t get much done tonight, though… after work, I’ll be spending the evening at the movie theater, watching Lord of the Rings: The Fellowship of the Ring Extended Edition. Bwahahaha! I actually never saw FotR in theaters, so this should make up for it.