SkillAgentSearch skills...

OneOffRender

Audio Reactive Music GLSL Shader render program.

Install / Use

/learn @hughesdo/OneOffRender
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

OneOffRender - Advanced Audio-Reactive Video Generator

A sophisticated video creation system that creates stunning audio-reactive videos using GLSL shaders. Choose from three powerful workflows:

  • 🎨 Web Editor (RECOMMENDED): Professional browser-based timeline editor with drag-and-drop interface
  • 🔧 OneOff Renderer: Quick command-line tool for testing individual shaders
  • ⚡ Batch Processor: Automated rendering with random shader cycling

Here’s a demo video showing how it works:

Video Demo

Watch the video on YouTube: OneOffRender for recording audio reactive shaders


📦 Installation & Setup

Prerequisites

Before you begin, ensure you have:

  • Python 3.7+: Download from python.org
    • ✅ Add Python to PATH during installation
    • ✅ Verify: Run python --version in command prompt
  • OpenGL 3.3+ Compatible GPU: Most modern graphics cards (2010+)
    • ✅ Update graphics drivers to latest version
  • 4GB+ RAM: Recommended for smooth rendering
  • Internet Connection: For first-time FFmpeg download (one-time setup)
  • Windows 10/11: Primary supported platform

Quick Installation

Option 1: Web Editor (Recommended)

# 1. Clone or download the repository
# 2. Double-click StartWebEditor.bat
StartWebEditor.bat

# The script will automatically:
# - Create Python virtual environment
# - Install all dependencies (Flask, librosa, moderngl, etc.)
# - Download FFmpeg/ffprobe (first-time only)
# - Launch the web editor on http://localhost:5000

Option 2: Batch Processor

# 1. Clone or download the repository
# 2. Double-click RunMe.bat
RunMe.bat

# The script will automatically:
# - Create Python virtual environment
# - Install all dependencies
# - Download FFmpeg/ffprobe (first-time only)
# - Process all audio files in Input_Audio/

Option 3: Manual Installation

# 1. Create virtual environment
python -m venv venv

# 2. Activate virtual environment
venv\Scripts\activate

# 3. Install dependencies
pip install -r requirements.txt

# 4. Verify installation
python verify_installation.py
python verify_ffmpeg.py

First-Time Setup

  1. Add Audio Files: Place MP3, WAV, or other audio files in Input_Audio/ folder
  2. Add Video Files (optional): Place green screen videos in Input_Video/ folder
  3. Launch: Run StartWebEditor.bat or RunMe.bat
  4. Create: Start making audio-reactive videos!

Verify Installation

# Check all components
python verify_installation.py

# Check FFmpeg specifically
python verify_ffmpeg.py

Dependencies (Automatically Installed)

  • Core Rendering: numpy, Pillow, moderngl, scipy
  • Audio Processing: librosa, ffmpeg-python
  • Web Editor: Flask, flask-cors

🔄 Keeping OneOffRender Updated

Automatic Updates from GitHub

Stay up-to-date with the latest shaders, features, and improvements using the built-in update system:

One-Click Update:

# Double-click to update from GitHub
refresh.bat

What the update does:

  • Pulls latest code - New features, bug fixes, and improvements
  • Downloads new shaders - Fresh audio-reactive effects and visuals
  • Updates transitions - New transition effects between shaders
  • Refreshes metadata - Updated shader descriptions and ratings
  • Preserves your files - Your audio, videos, and settings stay safe
  • Clears cache - Ensures fresh compilation of updated code

Safe Update Process:

  • 🔒 Stashes local changes - Your customizations are preserved
  • 🔒 Non-destructive - Virtual environment and user files untouched
  • 🔒 Rollback support - Can restore your changes with git stash pop
  • 🔒 Smart detection - Only updates when new changes are available

Manual Update (Alternative)

# If you prefer manual Git commands
git pull origin main
CacheClear.bat
python update_audio_metadata.py

After Updating

  • Web Editor users: Press Ctrl+Shift+R in browser to refresh
  • Batch users: Next render automatically uses updated code
  • Check Documentation/: New features and improvements documented

🎨 Web Editor (Primary Workflow - RECOMMENDED)

The Web Editor is the most comprehensive and user-friendly way to create videos. It provides a professional, visual editing experience with complete control over every aspect of your video.

✨ Key Features

Professional Timeline Editor

  • Adobe After Effects-style interface: Multi-layer timeline with precise timing control
  • Visual feedback: See exactly what you're creating as you build
  • Zoom controls: Timeline zoom with dynamic tick marks for precise editing
  • Audio waveform visualization: Visual representation of your music

Drag & Drop Interface

  • Shaders: Drag audio-reactive GLSL shaders onto the timeline
  • Transitions: Add smooth transitions between shader segments
  • Videos: Layer green screen videos with automatic chroma keying
  • Precise positioning: Move, resize, and arrange all elements visually

Asset Management

  • Shader browser: Browse 35+ included shaders with preview images
  • Star ratings: Rate shaders for easy organization (1-3 stars)
  • Audio reactivity indicators: See which shaders respond to music
  • Descriptions: Detailed information about each shader's visual style

Multi-Layer Compositing

  • Shader layers: Multiple audio-reactive shader segments
  • Transition layers: Smooth blending between shaders
  • Video layers: Green screen video overlays with chroma key support
  • Music layer: Audio track with waveform visualization

Green Screen Video Features

  • Drag & drop green screen videos: Layer videos with automatic chroma keying
  • Preview toggle: Right-click to enable/disable preview without affecting render
  • Pre-render preview: See green screen videos synced with audio before rendering
  • Advanced chroma key: Single-pass compositing with precise color matching (rgb(0, 214, 0))
  • Auto-management: Preview automatically disabled after render, re-enabled before next render
  • Visual indicators: Ghostly appearance (50% opacity, diagonal stripes) when preview disabled

Advanced Controls

  • Undo/Redo: Full history support for all edits
  • Timeline controls: Play, pause, scrub through your composition
  • Real-time preview: See changes immediately
  • Export settings: Configure resolution, quality, and output format

🚀 Quick Start - Web Editor

Launch the editor:

# Double-click to launch
StartWebEditor.bat

# Or run manually
cd web_editor
python app.py

Open in browser: Navigate to http://localhost:5000

Create your first video:

  1. Select Music: Click an audio file from the left panel
  2. Add Shaders: Drag shaders from the right panel onto the timeline
  3. Add Transitions: Drag transitions between shader segments
  4. Adjust Timing: Resize and move elements to match your music
  5. Render: Click "Render Video" and wait for processing

📚 Web Editor Documentation

  • User Guide: Documentation/WEB_EDITOR_README.md
  • Quick Start Tutorial: Documentation/QUICK_START.md
  • Technical Architecture: Documentation/ARCHITECTURE.md
  • Complete Specification: Documentation/WEB_EDITOR_SPEC.md

🎯 Why Use the Web Editor?

  • Visual control: See exactly what you're creating
  • Precise timing: Frame-accurate positioning
  • Easy to learn: Intuitive drag-and-drop interface
  • Professional results: Multi-layer compositing with transitions
  • Flexible workflow: Mix shaders, videos, and effects freely
  • No coding required: Everything is visual and interactive

🔧 OneOff Renderer (Quick Testing Tool)

The OneOff Renderer is a command-line tool for quickly testing and rendering individual shaders. Perfect for shader developers or when you want to preview a single shader without setting up a full timeline.

🎯 Purpose

  • Quick testing: Render any shader in seconds
  • Shader development: Test new shaders before adding to projects
  • Preview generation: Create quick previews of shader effects
  • Simple workflow: No timeline setup required

📝 Usage

Basic syntax:

python oneoff.py <shader_name> <duration>

Parameters:

  • shader_name: Name of shader file (with or without .glsl extension)
  • duration: Duration in seconds (e.g., 30) or MM:SS format (e.g., 01:30)

Examples:

# Render for 5 seconds
python oneoff.py "MoltenHeart.glsl" 5

# Render for 30 seconds
python oneoff.py "Cosmic Nebula2.glsl" 30

# Render for 1 minute 30 seconds
python oneoff.py "Bubble Colors" 01:30

# Extension is optional
python oneoff.py Gyroid Art 45

⚙️ How It Works

  • Automatic audio: Uses the first audio file found in Input_Audio/ directory
  • Config settings: Respects all config.json settings (resolution, quality, etc.)
  • Single shader: Disables multi-shader cycling and transitions
  • Output naming: Creates {shader_name}_{duration}s.mp4 in Output_Video/
  • Full audio reactivity: Complete frequency analysis and audio texture support

🎵 Audio Reactivity

All shaders receive real-time audio data:

  • FFT spectrum: 512-bin frequency analysis
  • Waveform data: High-resolution audio waveform
  • Bass/treble: Automatic frequency band extraction
  • Synchronized: Perfect sync between audio and visuals

💡 Use Cases

  • Testing new shaders: Quick preview before adding to web editor
  • Shader development: Iterate rapidly on shader code
  • Content creation: Generate simple single-shader videos
  • Quality checking: Verify shader behavior with different audio

⚡ Batch Processor (Automated Workflow)

The Batch Processor is the original automate

View on GitHub
GitHub Stars11
CategoryDevelopment
Updated1mo ago
Forks1

Languages

GLSL

Security Score

75/100

Audited on Mar 2, 2026

No findings