Using Keras & Theano for deep learning driven jazz generation

I built deepjazz in 36 hours at a hackathon. It uses Keras & Theano, two deep learning libraries, to generate jazz music. Specifically, it builds a two-layer LSTM, learning from the given MIDI file. It uses deep learning, the AI tech that powers Google's AlphaGo and IBM's Watson, to make music -- something that's considered as deeply human.

Check out deepjazz's music on SoundCloud!



Run on CPU with command:

python [# of epochs]

Run on GPU with command:

THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python [# of epochs]

Note: must be modified to work with other MIDI files (the relevant "melody" MIDI part needs to be selected). The ability to handle this natively is a planned feature.


Ji-Sung Kim
Princeton University, Department of Computer Science


This project develops a lot of preprocessing code (with permission) from Evan Chow's jazzml. Thank you Evan! Public examples from the Keras documentation were also referenced.

Code License, Media Copyright

Code is licensed under the Apache License 2.0
Images and other media are copyrighted (Ji-Sung Kim)

Built With

Share this project:


Private user

Private user posted an update

deepjazz has gone viral!

  • 100K+ players on SoundCloud
  • hit the front page of HN
  • trending on GitHub (peak positions #2 in Python, #7 in general) & 800+ stars
  • showcased in GIGAZINE, Japan's most popular blog

Log in or sign up for Devpost to join the conversation.