VimAbl - Ableton Live LSP¶
Welcome to VimAbl
Vim-like keybindings and LSP-style server functionality for Ableton Live. Control Live with intuitive keyboard shortcuts powered by a Python Remote Script and Hammerspoon automation.
What is VimAbl?¶
VimAbl brings the power of Vim-style keyboard navigation to Ableton Live, combined with a real-time LSP-like server architecture for live project visualization and control.
Key Features¶
- 🎹 Vim-inspired navigation -
gg,G,dd,zaand more familiar commands - 🎯 Context-aware shortcuts - Different behavior in Arrangement vs Session view
- 🔒 Thread-safe Remote Script - Exposes Live's state via local socket server (port 9001)
- ⚡ UDP/OSC Real-Time Observers - Streams Live events with < 10ms latency (port 9002)
- 🎛️ ClipSlot Matrix - Full track × scene grid with real-time playback states
- 🌲 Web TreeViewer - Real-time project visualization via WebSocket (port 8765)
- 🧩 Modular architecture - Easy to extend with new commands
- 🔄 Auto-recovery - Monitors and restarts eventtaps automatically
Quick Navigation¶
🚀 Getting Started¶
- Installation Guide - Complete setup instructions
- Quick Start - Get up and running in 5 minutes
- User Guide - Learn how to use VimAbl
📖 Documentation¶
- User Guide - Navigation, editing, and keybindings
- Architecture - System design and components
- API Reference - Command and protocol documentation
- Development - Extending and contributing
🔧 Resources¶
- Troubleshooting - Common issues and solutions
- FAQ - Frequently asked questions
- Changelog - Version history
System Overview¶
graph TB
User[User Input<br/>Keyboard] --> HS[Hammerspoon<br/>Lua Automation]
HS <-->|TCP 9001| RS[Remote Script<br/>LiveState.py]
RS <-->|Live API| Live[Ableton Live]
RS -->|UDP 9002<br/>OSC Events| UDP[UDP Listener]
UDP -->|WebSocket 8765| WS[WebSocket Server]
WS --> UI[Svelte Web UI<br/>TreeViewer]
Live -->|.als File| WS
Architecture Highlights¶
- Hammerspoon Integration - Lua-based automation for macOS keyboard shortcuts
- Python Remote Script - Runs inside Ableton Live, exposes thread-safe API
- UDP/OSC Observer System - Real-time event streaming with minimal latency
- WebSocket AST Server - Parses and visualizes project structure
- Svelte Frontend - Modern web UI for live project visualization
- LRU Caching - 10-100x faster lookups with automatic version-based invalidation
- Metrics & Telemetry - Comprehensive monitoring for performance optimization
Performance Metrics¶
| Metric | Target | Actual | Status |
|---|---|---|---|
| End-to-end latency | < 100ms | ~10ms | ✅ 10x better |
| UDP send time | < 1ms | ~0.5ms | ✅ 2x better |
| CPU usage (Remote Script) | < 5% | ~2% | ✅ |
| Packet loss | < 0.1% | 0% | ✅ Perfect |
Next Steps¶
- Install VimAbl - Set up on your system
- Quick Start Guide - Learn the basics in 5 minutes
- Explore the User Guide - Master all features
Community & Support¶
- GitHub Repository: VimAbl on GitHub
- Issues & Bug Reports: GitHub Issues
- Contributions: See Development Guide
License: MIT | Project Status: Active Development