Hacker News new | past | comments | ask | show | jobs | submit login

I would be interested to see what happens when you do this to other types of music.



I did a university project in Clojure that fed Final Fantasy midi tracks into a Markov chain.

https://github.com/IsaacLewis/MidiMarkov

The crystal theme worked the best (it's basically some scales on the piano that go up and down).

With a first order Markov chain, the output was a random walk of notes going higher and lower. With a second order chain, the notes went up and down fairly steadily, but with scales peaking at odd points. With a third-order chain, you get close to the original song out.

(It's hard to explain in text, without knowing the correct music vocabulary, but I hope you get the idea).


Markov models work well for almost every genre-- recompositions of classical or modal jazz tunes are particularly awesome.


This isn't exactly a Markov model, although I reckon you could draw a mathematical connection.


It seems to me that it is. Please explain how the markov property is violated?


I'd guess each section is unique so there is no frequency analysis; the next section is picked at random instead of saying "Whoop whoop" is followed by "gundam style" 20% of the time, by "hey sexy lady" 50% of the time and by another "whoop whoop" 20% of the time.


Surely in a Markov process the next state is picked at random with some probability distribution, which may be uniform.


Yeah, thinking about it some more, that seems to be correct. It isn't what people usually think about when they think about Markov models, but it qualifies.

Actually, I think this kind of Markov model might be a better introduction than some of the others I've seen, since it's extremely simple to understand.


I clicked through to his blog, and apparently, it was inspired by "James Brown Forever"

http://nest.echonest.com/post/526547218/james-brown-forever-...

I don't know his music well enough to tell it's a mix. Maybe you can.


My team built something similar at a recent hackathon. It attempts to automatically do this to an arbitrary WAV file (break up into waveforms) and generate a new piece of music: https://github.com/osnr/markov-music


Just tried it on a music I liked, and wanted to create an "inifinite" version for some time: http://soundcloud.com/college/college-teenage-color (echonest track id: SOGUHNN12A8C13E7DD)

It doesn't work as well as in gangnam style.

I didn't take time to try to understand why. Either this is because echonest's analyzed mp3 isn't the same as mine. Or the function to compute distance between beats isn't generic enough.


Analyze your own, it'll be much better when you're doing synchronous stuff like this. Our canonical audio is likely very different in bitrate or time to start.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: