Skip to main content

Turn a song into an 8-bit / chiptune arrangement of its melody (vocal or instrumental)

Project description

audio8bit

CI PyPI Downloads Python

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) or brew 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 vocals or -s instrumental to pick the right part, or -V lead for just the melody.

How it works (optional reading)

  1. Splits the song into parts (vocals, drums, bass, and the rest).
  2. Detects the actual notes being played in the part you chose.
  3. Replays those notes with simple 8-bit "chip" sounds and saves the file.

License

Noncommercial

Project details


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.0.tar.gz (25.7 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.0-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

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

Hashes for audio8bit-0.0.0.tar.gz
Algorithm Hash digest
SHA256 3cc2983bfef8a8e4f14027c6e0fa6034239fd6ad060dc539b9884efb197afc5f
MD5 6463122789dd3a299a9f4c3203e82372
BLAKE2b-256 ff9c3be01398ef830e94048131ff1f964344ecca1ca094689fab7c4dfa1a1ee3

See more details on using hashes here.

Provenance

The following attestation bundles were made for audio8bit-0.0.0.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.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

Hashes for audio8bit-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3cf43869425df41091e161062f6acea06ef3ad13a752bcc067f7d5fd8d83ede3
MD5 7395dacf2a3733766d2b31674d28407c
BLAKE2b-256 666e8f432d282cb890cbd0b6a56546e257d9ac8f0d322bcac039b2aed1e351f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for audio8bit-0.0.0-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.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page