analyze_rhythm
Analyze rhythm patterns in music to support AI-powered generation and live coding. Enables precise control over Strudel.cc for pattern creation, storage, and audio analysis in TidalCycles/Strudel environments.
Instructions
Rhythm analysis
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/server/EnhancedMCPServerFixed.ts:256-260 (registration)Tool registration and schema definition for 'analyze_rhythm' in the list of tools returned by getTools(){ name: 'analyze_rhythm', description: 'Rhythm analysis', inputSchema: { type: 'object', properties: {} } },
- Handler logic for the 'analyze_rhythm' tool within the executeTool switch statement. It checks initialization, calls analyzeAudio on controller, and returns a placeholder rhythm analysis response.case 'analyze_rhythm': if (!this.isInitialized) { return 'Browser not initialized. Run init first.'; } const analysis = await this.controller.analyzeAudio(); return { isPlaying: analysis.features?.isPlaying, tempo: 'Analysis pending implementation', pattern: 'Rhythm pattern analysis' };
- src/StrudelController.ts:87-91 (helper)Supporting method analyzeAudio() called by the handler, delegates to AudioAnalyzer for audio analysis.async analyzeAudio(): Promise<any> { if (!this.page) throw new Error('Not initialized'); return await this.analyzer.getAnalysis(this.page); }
- src/server/EnhancedMCPServer.ts:254-257 (registration)Tool registration and schema in the older EnhancedMCPServer.tsname: 'analyze_rhythm', description: 'Rhythm analysis', inputSchema: { type: 'object', properties: {} } },
- src/server/EnhancedMCPServer.ts:638-644 (handler)Handler logic in the older server file, similar placeholder implementation.case 'analyze_rhythm': const analysis = await this.controller.analyzeAudio(); return { isPlaying: analysis.features?.isPlaying, tempo: 'Analysis pending implementation', pattern: 'Rhythm pattern analysis' };