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

# 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 (with harmony) or lead (single line) (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)
  • --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, or reduces them to a single lead line.
  • 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

audio8bit-0.0.2.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

audio8bit-0.0.2-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file audio8bit-0.0.2.tar.gz.

File metadata

  • Download URL: audio8bit-0.0.2.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for audio8bit-0.0.2.tar.gz
Algorithm Hash digest
SHA256 23bb83fd96c506e49411ea06a579211a650c30825de9951e410cbeb8dfe3551d
MD5 965638f768824104a5beca4f50ee5805
BLAKE2b-256 0dfeb5351b774476a6e3d338fbb02755655c007801ca119fe6ecc96a29f3b334

See more details on using hashes here.

Provenance

The following attestation bundles were made for audio8bit-0.0.2.tar.gz:

Publisher: publish.yml on yumiaura/audio8bit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file audio8bit-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: audio8bit-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for audio8bit-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 238974f8067c8aa51c3da61bc46084e20b404dac1f4675b6a3cd23b502320e7e
MD5 1be8ae03cfc7742ca6dc1d0a12c20e19
BLAKE2b-256 4de43c51c446201711d22cc44452bbf7f34329ebdc68d694b06ea14b5a0a1bf8

See more details on using hashes here.

Provenance

The following attestation bundles were made for audio8bit-0.0.2-py3-none-any.whl:

Publisher: publish.yml on yumiaura/audio8bit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.0.3

2 files

This release

0.0.2 This release

2 files

0.0.1

2 files

0.0.0

2 files

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