Skip to content

About

Turn any song into synchronized Maya animation - beat-quantized keys, timeline beat markers, and a lighting-desk console that choreographs a bulb dome to the music. PySide6 + librosa.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maya Audio Tools

Turn any song into synchronized Maya animation — beat markers on the timeline, quantized keys, and a full lighting-desk that choreographs a 539-bulb dome to the music.

You have a track and a scene. Making them move together used to mean counting frames against a BPM calculator. These tools do the listening for you: one command analyzes a song (or a YouTube link) into beats, bars, sections and loudness — then two Maya panels turn that into animation. Animators snap keys to the beat like quantizing MIDI. Lighting shows bake themselves from a schedule table. No math, no re-timing by hand.


Why

Music has structure — beats, bars, choruses, hits. Maya has no idea. Every "animate to the music" workflow ends with someone scrubbing audio and typing frame numbers into a calculator. The fix is treating the song like data: analyze it once, then let the beat grid live inside Maya — visible on the timeline, snappable, bakeable, and driving whole rigs.


The tools

🎛 Audio Driver — beat sync for animators

A Reason-style hardware rack, docked in Maya. Rotary knobs, LCD readouts, one red BAKE button.

Audio Driver

  • Timeline beat markers — the beat grid drawn on Maya's time slider.
  • Snap Keys to Grid — animate rough, select keys, one click quantizes them to the nearest beat/bar. The MIDI-quantize workflow, for keyframes.
  • Key Pose on Grid — a hold-key scaffold on every beat to offset from.
  • Audio on the timeline — hear the track while you scrub.
  • Bake — drive any attribute from any analysis channel (loudness → scale, beats → pulse) through linear / step / pulse mappings.

→ Animator walkthrough: README_ANIMATORS.md

💡 Dome Console — a lighting desk inside Maya

Builds and choreographs the Are You Gonna Go My Way bulb ceiling: a parametric dome of tungsten bulbs (flat ceiling ↔ hemisphere on one knob), driven by a schedule table that reads like a lighting cue sheet.

Rig tab

Schedule tab

  • Show file is the truth — rig params, schedule, cues and colors live in a session JSON; edit a knob and the dome rebuilds and re-bakes itself.
  • Schedule rows — "every beat: chase outward at peak 8", "every bar: full flash", "each chorus: rim goes crimson". Bake once, Ctrl+Z once.
  • Patterns — ring sweeps, expanding chases, stars, spirals, full pulses.
  • Draft ↔ final preview — VP-preview scale pulses for fast viewport drafts; Arnold viewport capture for the real look; playblasts mux the song in with ffmpeg and open in VLC.

→ Full manual: README_DOME_CONSOLE.md

🎵 Analysis pipeline

python analyze.py --yt https://www.youtube.com/watch?v=...   # or --audio song.wav

Downloads the audio (yt-dlp), analyzes it with librosa, and writes output/<track>/ — tempo, bars, beats, tatums, sections and segments as Maya-friendly JSON at 24 fps (remapped to your scene rate automatically). Both panels read straight from that folder.


Install

# Maya 2026 Script Editor (Python tab)
import sys
sys.path.append(r"C:/path/to/maya_audio_tools")
import install_shelf
install_shelf.install()

Three shelf buttons: AudDrv (Audio Driver), KvDome / DomeFX (Dome Console). Buttons hot-reload the tools on every click — edit code, click, it's live.

Requirements

What For
Maya 2026 (PySide6) + Arnold the panels & the dome
Python 3.11 with librosa, soundfile analyze.py
yt-dlp + ffmpeg --yt downloads, playblast audio mux
VLC (optional) playblasts auto-open in it

Repo layout

analyze.py               # song -> output/<track>/*.json (+ keeps the wav)
audio_driver/            # Audio Driver package (core/, ui/, resources/)
audio_driver_core.py     # Maya-free math: beat grids, quantize, remapping
dome_rig.py              # parametric bulb-dome builder (registry contract)
dome_patterns.py         # pattern library (chases, stars, spirals)
dome_choreographer.py    # schedule -> keyframes (bake_show)
dome_console/            # the lighting-desk UI package
dome_playblast.py        # viewport capture + ffmpeg audio mux + VLC
install_shelf.py         # shelf buttons
tests/                   # pytest suite for all Maya-free logic

Everything Maya-free is tested headless (python -m pytest tests/ -q); the _smoke_*.py harnesses exercise the dome planner without a Maya session.


Built for a music-video-style bulb-dome project; the Audio Driver works for any "animate to music" task — lights, cameras, mograph, characters.

About

Turn any song into synchronized Maya animation - beat-quantized keys, timeline beat markers, and a lighting-desk console that choreographs a bulb dome to the music. PySide6 + librosa.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages