Skip to main content

GPU-accelerated audio-reactive music video generator

Project description

audioglow

GPU-accelerated audio-reactive music video generator. Turns your tracks into visual content with OpenGL shaders — album covers react to beats, bass, and frequencies in real time.

Installation

pip install audioglow

Requirements: ffmpeg must be installed and available in PATH.

Quick Start

Python API

from audioglow import render_video

# Minimal — just tracks, output, and video type:
render_video(
    tracks=["tracks/my_song/"],
    output="output.mp4",
    video_type="cover_audio_reactive",
)

# Custom settings:
render_video(
    tracks=["tracks/song1/", "tracks/song2/"],
    output="mix.mp4",
    video_type="cover_audio_reactive",
    fps=60,
    resolution=(1920, 1080),
    bloom_strength=2.0,
    bitrate="16M",
    crossfade_ms=3000,
)

Each track directory must contain:

  • One .wav audio file
  • One cover image (.png, .jpg, or .jpeg)

CLI

# Single config
audioglow --config config.json --tracks-dir ./tracks --output ./out

# Batch — all configs in configs/
audioglow --all --output ./out

Video Types

Type Description
cover_audio_reactive Album cover with reactive zoom, shake, bloom on blurred background
cover_overlay_green Cover + green-screen video converted to palette-colored particles
cover_overlay_spectrum Cover + audio frequency spectrum wave visualization
cover_combo All effects combined: particles + spectrum + cover

Overlay types (cover_overlay_green, cover_combo) require overlay_path pointing to a green-screen video file.

Parameters

Parameter Default Description
resolution (1920, 1080) Video resolution
fps 30 Frames per second
cover_size 800 Cover art size (px)
zoom_strength 0.3 Bass-reactive zoom intensity
shake_strength 4.0 / 0.5* Beat-reactive camera shake
bloom_strength 1.5 / 3.0* Glow intensity on beats
blur_sigma 40 / 35* Background blur radius
bitrate "12M" Video bitrate
crossfade_ms 4000 Crossfade between tracks (ms)
overlay_path None Path to overlay video (required for overlay types)
config_file None JSON config file (overrides type defaults, kwargs override both)
tracks_count all Max tracks to use

*cover_combo type uses different defaults optimized for layered effects.

Config Priority

Type Defaults  →  JSON config file  →  kwargs
   (lowest)                           (highest)

JSON Config Example

{
  "video_type": "cover_audio_reactive",
  "resolution": [1920, 1080],
  "fps": 30,
  "zoom_strength": 0.3,
  "shake_strength": 4.0,
  "bloom_strength": 1.5,
  "blur_sigma": 40,
  "bitrate": "12M",
  "tracks_count": 2,
  "crossfade_ms": 4000
}

How It Works

  1. Audio analysis — librosa extracts RMS energy, onset strength, and 64-band mel spectrogram
  2. Palette extraction — dominant colors pulled from cover art
  3. GPU rendering — ModernGL (OpenGL 3.3) fragment shaders render each frame
  4. Encoding — ffmpeg encodes frames with hardware-accelerated H.264 (VideoToolbox / NVENC / VAAPI / QSV, fallback to libx264)

License

MIT

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

audioglow-0.1.2.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

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

audioglow-0.1.2-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file audioglow-0.1.2.tar.gz.

File metadata

  • Download URL: audioglow-0.1.2.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for audioglow-0.1.2.tar.gz
Algorithm Hash digest
SHA256 eef11a5e15937331e5c12a5f6633594f5f7bfc50c623053f9a823e6591c6c608
MD5 acbee24c3e2fb74e0bbe8f07f1ea450a
BLAKE2b-256 b0bf04bd56ca9198f364915b45162be3eb9949a971909e960b2d78f905703480

See more details on using hashes here.

Provenance

The following attestation bundles were made for audioglow-0.1.2.tar.gz:

Publisher: publish.yml on fatyzzz/audioglow

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

File details

Details for the file audioglow-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: audioglow-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for audioglow-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6d8c4a961006c228d1bda2eba26a94f5be7a3ce19e4994253a3c6d023bea6475
MD5 91d2db9ceef082f26558dd54df805890
BLAKE2b-256 6f2edba50e9c4594259067606eef086ab80a7c5cd667e4e49df6a9af1102f4e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for audioglow-0.1.2-py3-none-any.whl:

Publisher: publish.yml on fatyzzz/audioglow

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