← all repositories
salu133445/musegan

Teaching neural networks to jam in five-part harmony

It exists to generate multi-track symbolic music—bass, drums, guitar, piano, and strings—using adversarial training, either from scratch or to accompany a user-provided track.

2k stars Python Image · Video · Audio
musegan
Not currently ranked — collecting fresh signals.
star history

What it does MuseGAN trains generative adversarial networks on the Lakh Pianoroll Dataset to produce pop-song phrases with five separate instrument tracks. The system can compose from nothing or fill in missing parts around a track you supply, outputting pianoroll arrays, images, or MIDI-ready files.

The interesting bit The latest implementation trades control for efficiency: it borrows 3D convolutions from the BinaryMuseGAN architecture, which shrinks the network but sacrifices the ability to feed different latent variables to individual measures or tracks. The original AAAI 2018 experiments remain available in the v1 folder.

Key highlights

  • Generates polyphonic pop phrases for bass, drums, guitar, piano, and strings simultaneously
  • Supports both unconditional generation and track-conditional accompaniment
  • Uses 3D convolutional layers for temporal structure, yielding a smaller model footprint
  • Exports numpy arrays, PNG visualizations, and compressed pianorolls convertible to MIDI via pypianoroll
  • Original research code preserved in v1; a PyTorch reimplementation lives in a separate repository

Caveats

  • The current 3D-convolution design explicitly limits fine-grained control over individual measures or tracks compared with earlier versions
  • This is the original research codebase; users seeking a PyTorch implementation are pointed to an external tutorial repository

Verdict A solid reference if you study symbolic music generation or need a working multi-track GAN baseline. Look elsewhere if you want granular control over every instrument line or a modern PyTorch-native workflow.

Frequently asked

What is salu133445/musegan?
It exists to generate multi-track symbolic music—bass, drums, guitar, piano, and strings—using adversarial training, either from scratch or to accompany a user-provided track.
Is musegan open source?
Yes — salu133445/musegan is open source, released under the MIT license.
What language is musegan written in?
salu133445/musegan is primarily written in Python.
How popular is musegan?
salu133445/musegan has 2k stars on GitHub.
Where can I find musegan?
salu133445/musegan is on GitHub at https://github.com/salu133445/musegan.

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