← all repositories
calclavia/DeepJ

Neural network DJ that mixes Bach like a cocktail

DeepJ generates MIDI music by blending composer styles as tunable parameters, not just imitating one.

743 stars Python Image · Video · Audio
DeepJ
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does DeepJ is a Keras/TensorFlow model that generates polyphonic MIDI music conditioned on a weighted mixture of composer styles. You train it on your own MIDI dataset, then generate new compositions by dialing in how much Mozart, Chopin, or whoever you want in the blend. The paper claims it outperforms the earlier Biaxial LSTM approach in human evaluations.

The interesting bit Most music generation models pick a style and stick to it. DeepJ treats style as a continuous control vector — more like adjusting sliders on a mixing board than selecting a radio station. The paper also emphasizes learning musical dynamics (volume, expression) alongside notes, which is where a lot of generated music sounds robotic.

Key highlights

  • Style is a tunable parameter, not a hard classification
  • Learns dynamics (loudness/expression) in addition to pitch and timing
  • End-to-end MIDI generation with Keras/TensorFlow
  • Human rater evaluation against prior work (Biaxial LSTM)
  • Accompanying research paper with proof-of-concept style control technique

Caveats

  • No dataset included; you bring your own MIDI collection to data/
  • Requires manual install of an external python-midi fork before pip dependencies
  • Python 3.5 requirement suggests the codebase may need attention for modern environments
  • README is sparse on architecture details — you’ll need the paper for the full picture

Verdict Worth a look if you’re researching controllable music generation or want a concrete implementation of style-conditioned sequence models. Skip if you need a batteries-included tool or modern Python support without elbow grease.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.