Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Generate 8-bit chiptunes with deep learning
| Date | Stars |
|---|---|
| 2026-07-31 | 357 |
| 2026-08-02 | 357 |
| 2026-08-06 | 357 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# LakhNES: Generate 8-bit music with machine learning <p align="center"> <img src="https://github.com/chrisdonahue/LakhNES/raw/gh-pages/logo.png" width="50%"/> </p> LakhNES ([paper](https://arxiv.org/abs/1907.04868), [music examples](https://chrisdonahue.com/LakhNES)) is a deep neural network capable of generating music that can be played by the audio synthesis chip on the Nintendo Entertainment System (NES). It was trained on music composed for the NES by humans. Our model takes advantage of transfer learning: we pre-train on the heterogeneous [Lakh MIDI](https://colinraffel.com/projects/lmd/) dataset before fine tuning on the [NES Music Database](https://github.com/chrisdonahue/nesmdb) target domain. ## Using this codebase ### Generating new chiptunes This codebase primarily functions to allow for the generation of musical material using the pre-trained LakhNES model. LakhNES outputs sequences of musical events which need to be separately synthesized into 8-bit audio. The steps required are as follows: 1. [Set up your model environment](#model-environment) 1. [Set up your audio synthesis environment](#synthesis-environment) 1. [Download a pre-trained checkpoint](#download-checkpoints) 1. [Generate and listen to chiptunes](#generate-new-chiptunes) ### Evaluating pre-trained checkpoints This codebase also allows you to evaluate pre-trained models to reproduce the paper results. The steps required for this use case are as follows: 1. [Set up your model environment](#model-environment) 1. [Download the pre-trained checkpoints](#download-checkpoints) 1. [Run the eval script](#reproduce-paper-results) ### Training new checkpoints With this codebase you can also train a new model (though the documentation for this is still being improved): 1. [Set up your model environment](#model-environment) 1. [Download the data](#download-data) 1. [Train a new model](#train-lakhnes) ## Model environment The model environment requires Python 3 and Pytorch. The development version of Pytorch was `1.0.1.post2`, but hopefully the newest version will continue to work (see [this section](#reproduce-paper-results) for a sanity check). We recommend using `virtualenv` as you will need a separate environment to perform [audio synthesis](#synthesis-environment). ``` cd LakhNES virtualenv -p python3 --no-site-packages LakhNES-model source LakhNES-model/bin/activate pip install torch==1.0.1.post2 torchvision==0.2.2.post3 ``` ## Synthesis environment LakhNES requires the Python package `nesmdb` to synthesize chiptune audio. Unfortunately, `nesmdb` does not support Python 3 (which the rest of this codebase depends on). We *strongly* recommend using `virtualenv` to install `nesmdb` and run it is a local RPC server. To do this, run the following commands from this repository: ``` cd LakhNES virtualenv -p python2.7 --no-site-packages LakhNES-synth source LakhNES-synth/bin/activate pip install nesmdb pip install pretty_midi python data/synth_server.py 1337 ``` This will expose an RPC server on port `1337` with two methods: `tx1_to_wav` and `tx2_to_wav`. Both take a `TX1/TX2` input file path, a `WAV` output file path, and optionally a `MIDI` downsampling rate. A lower rate speeds up synthesis but will mess up the rhythms (if not specified, no downsampling will occur). ### (Optional) Test your synthesis environment on human-composed music If you wish to test your synthesis environment on human-composed music, you first need to [download the data](#download-data). Then, if you have both your [model](#model-environment) and [synthesis](#synthesis-environment) environments ready, you can synthesize a chiptune from Kirby's Adventure: ``` source LakhNES-model/bin/activate python data/synth_client.py data/nesmdb_tx1/train/191_Kirby_sAdventure_02_03PlainsLevel.tx1.txt plains_tx1.wav 48 aplay plains_tx1.wav python data/synth_client.py data/nesmdb_tx2/train/191_Kirby_sAdventure_02_03PlainsLevel.tx2.txt plains_tx2.wav 48 aplay plains_tx2.wav ``` ## D
Excerpt of 9,497 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:c0a10354d1b72e7a, desc:8-bit