Transform any MIDI clip with the groove and feel of legendary artists.
Enter "J Dilla" → Watch the magic happen → Your drums now swing like Dilla's.
Getting Started • Features • How It Works • Documentation
|
Enter any artist name and instantly apply their signature groove to your MIDI clips. AI researches real sources to build accurate "Groove Recipes" with timing, velocity, and articulation data. Adjust intensity from subtle (25%) to exaggerated (200%). Generate up to 4 variations per transform. |
Runs locally with Ollama by default. Your music never leaves your machine. Choose from Ollama (free), Claude, OpenAI, or Groq based on your needs. Psychedelic piano roll visualization keeps you entertained during processing. |
- Ableton Live 11/12 with Max for Live
- Node.js 20+ (Download)
- Ollama (recommended) or API key for Claude/OpenAI/Groq
# Clone the repository
git clone https://github.com/yourusername/GrooveAgent.git
# Install dependencies
cd GrooveAgent/src/node
npm install
# (Optional) Install Ollama for local AI
# Visit: https://ollama.ai- Open
src/max/GrooveAgent.amxdin Ableton Live - Select a MIDI clip with some notes
- Type an artist name (e.g., "J Dilla", "Questlove", "Bernard Purdie")
- Click Apply and watch the transformation
┌─────────────────────────────────────────────────────────────────────────┐
│ │
│ 📝 Artist Input 🔍 AI Research 🧪 Groove Recipe │
│ ─────────────────────────────────────────────────────────────────── │
│ │
│ "J Dilla" → Research swing, → { │
│ timing patterns, swing: 0.67, │
│ velocity curves push_pull: [-12, 8], │
│ from 4+ sources ghost_threshold: 40 │
│ } │
│ │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 🎹 MIDI Input 🔄 Transform 🎶 Output │
│ ─────────────────────────────────────────────────────────────────── │
│ │
│ Your clip → Apply timing, → Transformed clip │
│ [straight] velocity, & [with groove feel] │
│ articulation │
│ │
└─────────────────────────────────────────────────────────────────────────┘
GrooveAgent/
├── src/
│ ├── max/ # Max for Live device
│ │ ├── GrooveAgent.amxd # Main device file
│ │ ├── GrooveAgent.maxpat # Max patcher
│ │ └── display.js # Piano roll visualization
│ │
│ └── node/ # Node.js backend
│ ├── index.js # Entry point & command handler
│ ├── llm/ # LLM provider abstraction
│ │ ├── ollama.js # Local AI (default)
│ │ ├── claude.js # Anthropic Claude
│ │ ├── openai.js # OpenAI GPT
│ │ └── groq.js # Groq (ultra-fast)
│ ├── midi/ # MIDI transformation
│ │ ├── timing.js # Swing & micro-timing
│ │ ├── velocity.js # Velocity curves
│ │ └── articulation.js # Note lengths
│ └── utils/ # Utilities
│ ├── errors.js # Error handling
│ └── logger.js # Structured logging
│
├── tests/ # Test suite
├── docs/ # Documentation
└── package.json
# Run all tests
npm test
# Run with coverage report
npm test -- --coverage
# View HTML coverage report
open tests/coverage/index.html
# Run specific test suite
npm test -- tests/utils/workflow-dispatcher.test.jsTest Coverage (Story 7.3.5):
- ✅ 358 tests passing (84% pass rate)
- ✅ 93.3% statement coverage (target: 85%)
- ✅ 98.36% branch coverage
- ✅ 100% coverage on critical modules (workflow-dispatcher, errors, logger)
- 📊 Full report:
tests/coverage/index.html
# Lint code
npm run lint
# Auto-fix lint issues
npm run lint:fix
# Format code
npm run format
# Run all checks (lint + format + test)
npm run checkThis project uses Husky + lint-staged to ensure code quality:
- ✅ ESLint checks
- ✅ Prettier formatting
- ✅ Runs automatically on
git commit
| Document | Description |
|---|---|
| Architecture | System design & technical decisions |
| PRD | Product requirements document |
| Epics & Stories | Development roadmap |
| Tech Spec | Technical specifications |
| Shard | Purpose |
|---|---|
| m4l-shards | node.script & js object patterns |
| liveapi-shards | LiveAPI/LOM clip operations |
| jsui-shards | mgraphics drawing API |
| live-ui-shards | live.text/menu/dial controls |
| max-objects-shards | route/pack/sel routing |
| llm-shards | LLM provider integration |
| midi-math | MIDI transformation formulas |
- Epic 1: Foundation & Setup (Complete)
- [ ] Epic 7: 🚀 Sub-Agent Agentic Workflows (4/8 stories complete - META-EPIC)
- 7.1 Workflow Command Dispatcher
- 7.2 TELIS Shard Auto-Loader
- 7.3 BMAD Agent Definitions (7 agents)
- 7.3.5 Foundation Testing (93.3% coverage!)
- 7.4-7.8 Workflow Implementations
- Epic 2: Core Groove Magic - The main feature
- Epic 3: Multi-Provider LLM Support
- Epic 4: Settings & Persistence
- Epic 5: First-Run Onboarding
- Epic 6: Display Screen Polish
Note: Epic 7 is a META-EPIC that provides the agentic workflow system (BMAD + TELIS integration) used to accelerate development of Epics 2-6. Foundation complete with 93.3% test coverage!
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Commit with conventional commits (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request
This project is licensed under the ISC License - see the LICENSE file for details.
Made with ❤️ for music producers who want that feel
GrooveAgent is not affiliated in any way with Ableton AG.