Skip to main content

audio8bit - turn any song into 8-bit chiptune music

CI PyPI Downloads Python

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 ships ffmpeg and ffprobe). Install it with sudo apt install ffmpeg (Linux) or brew 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: transcribe or pitch (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), or nes (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

Noncommercial

Metadata

Release files for audio8bit 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for audio8bit 0.0.3
File Size Uploaded Provenance Actions
audio8bit-0.0.3.tar.gz 38.2 kB With provenance Details for audio8bit-0.0.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for audio8bit 0.0.3
File Interpreter ABI Platform Actions
audio8bit-0.0.3-py3-none-any.whl Python 3 none any Details for audio8bit-0.0.3-py3-none-any.whl

Total release size: 75.4 kB

Release files / audio8bit-0.0.3.tar.gz

Download URL audio8bit-0.0.3.tar.gz
Size 38.2 kB
Tags Source
SHA-256 checksum
How to use checksums
93f99ffbddb29213aab780440e6ff8581521358f104183ce7f51dbfba5696ac2
BLAKE2b-256 checksum
How to use checksums
b371dde7b0e66319e99ef1ae3914806a090040f8eecf9e802c8313596e01de7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.

Transparency log

Release files / audio8bit-0.0.3-py3-none-any.whl

Download URL audio8bit-0.0.3-py3-none-any.whl
Size 37.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
377c18e8d865aa504142ca59888ef75047124c4f8cda1d89d82c85d742d6d1ae
BLAKE2b-256 checksum
How to use checksums
743d44494f3861b9c4c1b1b68159b5f52012ea186c3d82487ace56cecf150572
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.

Transparency log

Security for audio8bit 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for audio8bit-0.0.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page