Turn a song into an 8-bit / chiptune arrangement of its melody (vocal or instrumental)
Project description
audio8bit
Turn any song into 8-bit, video-game-style music - right from your terminal. audio8bit finds the song's melody (and its chords) and replays them with retro "chiptune" sounds, like an old game console.
English | Español | Português | Français | Deutsch | Italiano | Русский | 中文 | 日本語 | हिन्दी | 한국어
What it does
- Give it a song, get back a chiptune version of it.
- Works whether the song has singing or is instrumental - it picks the tune automatically.
- Everything runs on your own computer; nothing is uploaded.
Before you start
You need two things:
- Python 3.9 or newer
- ffmpeg - a free tool for reading and writing audio. Install it with
sudo apt install ffmpeg(Linux) orbrew install ffmpeg(macOS).
Install
pip install audio8bit
First run is slow: it downloads a small AI model (about 80 MB) and can take a few minutes. That's normal - later runs are faster.
Use it
audio8bit -i song.mp3
This creates output.mp3 in the current folder. That's it. Each run also
prints a short quality report so you can see the result came out clean.
Want something different? Here are the most common tweaks:
audio8bit -i song.mp3 -V lead # just the main melody, no chords
audio8bit -i song.mp3 -s vocals # follow the singing
audio8bit -i song.mp3 -s instrumental # follow the instruments
audio8bit -i song.mp3 --transpose 5 # play it 5 semitones higher
audio8bit -i song.mp3 -f ogg # save as .ogg instead of .mp3
All options
| Option | Default | What it does |
|---|---|---|
-i, --input |
required | The song to convert (mp3, wav, flac, ...) |
-o, --output |
output.<type> |
Where to save the result |
-f, --format |
same as input | Save as a different type, e.g. ogg, wav |
-s, --source |
auto |
Where to take the tune: vocals, instrumental, or auto |
-m, --method |
transcribe |
How notes are found: transcribe (best) or pitch (faster, lighter) |
-V, --voices |
chords |
chords (with harmony) or lead (one melody line) |
--transpose |
0 |
Shift the key, in semitones (e.g. 5 up, -5 down) |
--bits |
8 |
Sound resolution, 1-8 (lower = crunchier) |
--rate |
22050 |
Sample rate in Hz (lower = more retro) |
--duty |
0.25 |
Tone colour of the pulse wave, 0-1 |
If something goes wrong
- "ffmpeg not found" - install ffmpeg (see Before you start).
- The first run seems stuck - it's downloading the AI model; give it a few minutes. It only happens once.
- It doesn't sound like the song - try
-s vocalsor-s instrumentalto pick the right part, or-V leadfor just the melody.
How it works (optional reading)
- Splits the song into parts (vocals, drums, bass, and the rest).
- Detects the actual notes being played in the part you chose.
- Replays those notes with simple 8-bit "chip" sounds and saves the file.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file audio8bit-0.0.0.tar.gz.
File metadata
- Download URL: audio8bit-0.0.0.tar.gz
- Upload date:
- Size: 25.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cc2983bfef8a8e4f14027c6e0fa6034239fd6ad060dc539b9884efb197afc5f
|
|
| MD5 |
6463122789dd3a299a9f4c3203e82372
|
|
| BLAKE2b-256 |
ff9c3be01398ef830e94048131ff1f964344ecca1ca094689fab7c4dfa1a1ee3
|
Provenance
The following attestation bundles were made for audio8bit-0.0.0.tar.gz:
Publisher:
publish.yml on yumiaura/audio8bit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
audio8bit-0.0.0.tar.gz -
Subject digest:
3cc2983bfef8a8e4f14027c6e0fa6034239fd6ad060dc539b9884efb197afc5f - Sigstore transparency entry: 1825311039
- Sigstore integration time:
-
Permalink:
yumiaura/audio8bit@f9652e4bfc59ae45dadca5fe7ba3581b55fc2530 -
Branch / Tag:
refs/tags/v0.0.0 - Owner: https://github.com/yumiaura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f9652e4bfc59ae45dadca5fe7ba3581b55fc2530 -
Trigger Event:
release
-
Statement type:
File details
Details for the file audio8bit-0.0.0-py3-none-any.whl.
File metadata
- Download URL: audio8bit-0.0.0-py3-none-any.whl
- Upload date:
- Size: 24.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cf43869425df41091e161062f6acea06ef3ad13a752bcc067f7d5fd8d83ede3
|
|
| MD5 |
7395dacf2a3733766d2b31674d28407c
|
|
| BLAKE2b-256 |
666e8f432d282cb890cbd0b6a56546e257d9ac8f0d322bcac039b2aed1e351f7
|
Provenance
The following attestation bundles were made for audio8bit-0.0.0-py3-none-any.whl:
Publisher:
publish.yml on yumiaura/audio8bit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
audio8bit-0.0.0-py3-none-any.whl -
Subject digest:
3cf43869425df41091e161062f6acea06ef3ad13a752bcc067f7d5fd8d83ede3 - Sigstore transparency entry: 1825311160
- Sigstore integration time:
-
Permalink:
yumiaura/audio8bit@f9652e4bfc59ae45dadca5fe7ba3581b55fc2530 -
Branch / Tag:
refs/tags/v0.0.0 - Owner: https://github.com/yumiaura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f9652e4bfc59ae45dadca5fe7ba3581b55fc2530 -
Trigger Event:
release
-
Statement type: