My Secret Life as a Spaghetti Coder
home | about | contact | privacy statement
emcee-3PO takes a text file of music, runs it through a Markov Model, and generates new music to be played with Archaeopteryx.

It's an idea I've had for a while, which _why day gave me a good excuse to start.

There's not much there yet -- the first sentence above tells you exactly what it does -- but I hope to add some features to it as time allows:
  • Read from sheet music
  • Use different instruments instead of simply playing the notes as written / make it symphonic
  • Choose probabilities in some smart way to provide to Arkx (right now it's just 100% play this note)
  • Mixing multiple songs
I just thought it'd be a fun exercise, but I bet there's some really cool practical stuff this could turn into.

Feel free to watch the repository if you're interested in seeing this develop.

More importantly, and use your imagination here: Do you have any thoughts about what something like this could do?

Hey! Why don't you make your life easier and subscribe to the full post or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!

Leave a comment

Post some samples! We want results :-)

Posted by Tim Gradwell on Aug 20, 2011 at 02:57 AM UTC - 5 hrs

Will do! It's cheesy now because it'll only do 1 input at a time, so it sounds quite like playing single notes on a cheap keyboard. =)

But I will eventually get it to do multiple instrument inputs. Maybe the next thing on the list in fact!

After I get back from Houston Code Camp today, or maybe tomorrow, I'll generate an MP3 and put it up online.

Posted by Sammy Larbi on Aug 20, 2011 at 06:58 AM UTC - 5 hrs

Why not start with MIDI as input and output?

I've tried a few things along this line. My goals have been to synthesize timing and chording and understanding short-to-long term state changes. I never tried doing this with Markov chains but it seems like a natural.

Posted by rogerT on Aug 20, 2011 at 04:03 PM UTC - 5 hrs

@rogerT: No reason - it just never occurred to me. I kind of like that idea, so thanks!

@Tim Gradwell: Here's a demo (a few seconds in length) of what was output via the example in the github repo:

Posted by Sammy Larbi on Aug 21, 2011 at 02:44 PM UTC - 5 hrs

Leave a comment

Leave this field empty
Your Name
Email (not displayed, more info?)


Subcribe to this comment thread
Remember my details

Picture of me

.NET (19)
AI/Machine Learning (14)
Answers To 100 Interview Questions (10)
Bioinformatics (2)
Business (1)
C and Cplusplus (6)
cfrails (22)
ColdFusion (78)
Customer Relations (15)
Databases (3)
DRY (18)
DSLs (11)
Future Tech (5)
Games (5)
Groovy/Grails (8)
Hardware (1)
IDEs (9)
Java (38)
JavaScript (4)
Linux (2)
Lisp (1)
Mac OS (4)
Management (15)
MediaServerX (1)
Miscellany (76)
OOAD (37)
Productivity (11)
Programming (168)
Programming Quotables (9)
Rails (31)
Ruby (67)
Save Your Job (58)
scriptaGulous (4)
Software Development Process (23)
TDD (41)
TDDing xorblog (6)
Tools (5)
Web Development (8)
Windows (1)
With (1)
YAGNI (10)

Agile Manifesto & Principles
Principles Of OOD
Ruby on Rails

RSS 2.0: Full Post | Short Blurb
Subscribe by email:

Delivered by FeedBurner