A modular production tool for DaVinci Resolve featuring beat synchronization, stem separation, and marker automation — powered by Essentia.js WASM-based audio analysis.
GitHub Repository: https://github.com/hellonearthis/Resolver
- 🎵 Beat Extraction — Detect BPM and actual beat positions using Essentia.js
- 🎬 Video Assembler — Sync video clips to specific stems (drums, bass) with "Snap to Beat"
- 🎨 Storyboard — Build visual narratives with card-based prompts and AI generation
- 🎬 Video Sync — Auto-sync video clips to the beat
- 📜 Script Manager — Manage generated Python scripts for Resolve
- 🎚️ Stem Separation — Split tracks via ComfyUI with integrated Beat Analysis
Splitting a track as iconic as "Get Up, Stand Up" into stems—likely Drums, Bass, Vocals, and Other/Guitar—and then running beat analysis on each is a fantastic way to see how the "Wailers' pocket" actually works.
- The "Push and Pull": In reggae, the magic usually happens in the micro-timing. By analyzing stems individually, you can see if the drums are driving the beat while the bass sits slightly "behind" it (creating that heavy, relaxed feel).
- Syncopation Mapping: You can visually track how the "bubble" (the organ) or the guitar's "skank" hits the offbeat relative to the kick drum's downbeat.
- Dynamic Sensitivity: Standard beat analysis on a full mix often gets confused by the low-end thump. Doing it on a vocal or guitar stem reveals the rhythmic phrasing that isn't tied to the grid.
- 📄 Beat Detection Guide – Detailed guide on algorithms, onsets, and loudness.
- 📄 Video Assembler Guide – How to use stems, zoom-sync, and checkerboard assembly.
- 📄 Storyboard Guide – Guide to narrative-driven AI generation and storyboarding.
- 📄 Video Sync Guide – How to sync clips to music.
- 📄 Script Manager Guide – managing your generated scripts.
flowchart TD
Input[Song.mp3] --> App1
subgraph App1["Production Dashboard"]
WASM[Essentia.js WASM<br/>Audio Analysis]
Comfy[ComfyUI Bridge<br/>Stem Separation]
Assembler[Video Assembler<br/>Rhythmic Sequencing]
WASM --> Assembler
Comfy --> Assembler
end
subgraph Scripts["Python Automation"]
Manifest[manifest.json]
AssemblyScript[Assemble_Music_Video.py]
SyncScript[resolve_sync.py]
end
subgraph Resolve["DaVinci Resolve"]
Timeline[Automated Timeline<br/>Checkerboard Tracks]
Markers[Timeline/Clip Markers]
end
Assembler --> Manifest --> AssemblyScript
App1 --> SyncScript
AssemblyScript --> Resolve
SyncScript --> Resolve
npm installnpm startOr run start-dashboard.bat on Windows.
⚠️ Required before running any integrations
- Open DaVinci Resolve → Preferences.
- Go to System → General.
- Set External Scripting Using to Local.
- Restart Resolve.
PYTHONPATH=%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting\Modules\
Run the included checker to see if you have Studio (API enabled) or Free version:
python scripts/check_resolve_version.pyresolver/
├── electron/ # Electron main process (IPC, window mgmt)
│ ├── main.ts # Main entry point
│ └── preload.ts # Context bridge
├── src/ # React frontend
│ ├── modules/ # Feature-specific modules (BeatExtraction, VideoSync, etc.)
│ ├── components/ # Shared UI components
│ ├── services/ # Logic services (Essentia, etc.)
│ └── hooks/ # React hooks
├── scripts/ # Python scripts for DaVinci Resolve integration
│ ├── resolve_sync.py # Video sync logic
│ ├── beat_marker_loader.py # Marker import logic
│ └── ...
├── dist-electron/ # Compiled Electron code
└── dist/ # Compiled React app
💡 ComfyUI Workflow Standard: When designing custom workflows for the application (like LTX Video generation or Stem Separation), ensure that nodes requiring dynamic data injection from the app have their title renamed to include
[input](e.g., LoadAudio [input]), and nodes generating final results have their title renamed to include[output](e.g., SaveImage [output]).
- Stem Separation: Integrate ComfyUI to split audio into stems (drums, bass, vocals).
- Beat Analysis per Stem: Analyze and visualize individual rhythmic layers.
- Video Assembler: Specialized UI for multi-stem rhythmic syncing.
- Storyboard Module: Narrative-driven card system with unified AI prompts and versioning.
- Project Bundle Structure: Refactor projects to be self-contained bundles.
- Tap Tempo: Manual BPM adjustment for challenging tracks.
- Beat Divisions: Options for 1/2, 1/4, or double-time beat markers.
- Clip Randomizer: Mode to select random clips from a bin for quick montages.
- Sync Progress: Real-time progress bar for Resolve operations.
- Section Boundaries: Auto-detect verse/chorus transitions.
- Batch Processing: Analyze multiple audio files at once.
MIT