audio8bit - turn any song into 8-bit chiptune music
English | Español | Português | Français | Deutsch | Italiano | Русский | 中文 | 日本語 | हिन्दी | 한국어
A command-line tool that turns any song into 8-bit, video-game-style music. It finds the melody (from the vocals or the instruments) and replays it with retro "chiptune" sounds, like an old game console. Everything runs locally.
Requirements
- Python 3.9 or higher
- ffmpeg on your
PATH(it shipsffmpegandffprobe). Install it withsudo apt install ffmpeg(Linux) orbrew install ffmpeg(macOS).
Installation
pip install audio8bit
Or from GitHub:
pip install git+https://github.com/yumiaura/audio8bit.git
First run is slow: it downloads a small AI model (about 80 MB) and can take a few minutes. That is normal; later runs are faster.
Usage
# Convert a song (auto-detects vocal or instrumental)
audio8bit -i song.mp3
# Just the main melody, no chords
audio8bit -i song.mp3 -V lead
# Full chip band: pulse lead + pulse harmony + triangle bass + noise drums
audio8bit -i song.mp3 -V band
# NES-style: the band with an arpeggiated harmony, snapped to the beat
audio8bit -i song.mp3 -V nes
# Take the tune from the singing or from the instruments
audio8bit -i song.mp3 -s vocals
audio8bit -i song.mp3 -s instrumental
# Save as a different format
audio8bit -i song.mp3 -f ogg
# Play it 5 semitones higher
audio8bit -i song.mp3 --transpose 5
# Show help and version
audio8bit --help
audio8bit --version
Command Line Options
-i, --input- input audio file, required (any format ffmpeg can read)-o, --output- output path (default:output.<ext>)-f, --format- output format, e.g.ogg,wav(default: same as input)-s, --source- melody source:vocals,instrumental,auto(default:auto)-m, --method- note finding:transcribeorpitch(default:transcribe)-V, --voices-chords(one voice, with harmony),lead(single line),band(full chip band: pulse lead + pulse harmony + triangle bass from the bass stem + noise drums from the drums stem), ornes(the same band with an arpeggiated harmony, vibrato lead and everything snapped to the beat) (default:chords)--transpose- key shift in semitones (default:0)--bits- bit depth, 1-8, lower is crunchier (default:8)--rate- sample rate in Hz, lower is more retro (default:22050)--duty- pulse-wave duty cycle, 0-1 (default:0.25)--key-snap- band/nes: snap off-key notes to the detected key:on,off(default:on)--arrange- band/nes: chord-progression accompaniment, root bass and looped drums instead of replaying the transcription:on,off(default:on)--echo- band/nes: tempo-synced echo on the melody:on,off(default:on)--dither- band/nes: TPDF dither before bit quantisation:on,off(default:on)--no-cache- do not read or write cached Demucs stems--cache-dir- directory for cached stems (default:~/.cache/audio8bit, or$AUDIO8BIT_CACHE_DIR)--version- show version
Exit codes: 0 success, 1 conversion error, 2 bad arguments.
Features
- Works with vocal songs and instrumentals - picks the melody source automatically.
- Polyphonic transcription (basic-pitch) keeps the chords and bass, reduces them to a single lead line, or arranges them as a full chip band (pulse lead, pulse harmony, a triangle bass from the bass stem and noise drums from the drums stem) - either stacked (
band) or arpeggiated and beat-tight (nes). - Source separation with Demucs, deterministic so the same input always gives the same result.
- Alias-free chiptune synthesis with loudness dynamics and a smooth limiter.
- Key transposition and adjustable bit depth, sample rate and pulse tone.
- 8-bit PCM output as WAV, or any format ffmpeg can write.
- A quality report after every run, and everything runs on your own machine.
License
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.3.tar.gz.
File metadata
- Download URL: audio8bit-0.0.3.tar.gz
- Upload date:
- Size: 38.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
93f99ffbddb29213aab780440e6ff8581521358f104183ce7f51dbfba5696ac2
|
|
| MD5 |
5f8b71e85306b50db708e0f78952fbe4
|
|
| BLAKE2b-256 |
b371dde7b0e66319e99ef1ae3914806a090040f8eecf9e802c8313596e01de7f
|
Provenance
The following attestation bundles were made for audio8bit-0.0.3.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.3.tar.gz -
Subject digest:
93f99ffbddb29213aab780440e6ff8581521358f104183ce7f51dbfba5696ac2 - Sigstore transparency entry: 2052673240
- Sigstore integration time:
-
Permalink:
yumiaura/audio8bit@336cf23fa99c58de0174d1db98866e0fc07f4605 -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/yumiaura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@336cf23fa99c58de0174d1db98866e0fc07f4605 -
Trigger Event:
release
-
Statement type:
File details
Details for the file audio8bit-0.0.3-py3-none-any.whl.
File metadata
- Download URL: audio8bit-0.0.3-py3-none-any.whl
- Upload date:
- Size: 37.1 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 |
377c18e8d865aa504142ca59888ef75047124c4f8cda1d89d82c85d742d6d1ae
|
|
| MD5 |
df7a71bb18a923d097d0f3c966e47bc2
|
|
| BLAKE2b-256 |
743d44494f3861b9c4c1b1b68159b5f52012ea186c3d82487ace56cecf150572
|
Provenance
The following attestation bundles were made for audio8bit-0.0.3-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.3-py3-none-any.whl -
Subject digest:
377c18e8d865aa504142ca59888ef75047124c4f8cda1d89d82c85d742d6d1ae - Sigstore transparency entry: 2052673911
- Sigstore integration time:
-
Permalink:
yumiaura/audio8bit@336cf23fa99c58de0174d1db98866e0fc07f4605 -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/yumiaura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@336cf23fa99c58de0174d1db98866e0fc07f4605 -
Trigger Event:
release
-
Statement type: