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.
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.
A Reason-style hardware rack, docked in Maya. Rotary knobs, LCD readouts, one red BAKE button.
- 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
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.
- 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
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.
# 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 |
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.


