🎵 AudioMuse AI v0.2.0-alpha
Release Date: May 30, 2025
Summary
AudioMuse-AI v0.2.0-alpha marks a significant architectural shift, primarily focusing on enhancing performance and scalability for music analysis and playlist generation. This release introduces a robust parallel processing framework by migrating from Celery to Redis Queue and from SqlLite to PostgreSQL, enabling multi-node worker support and improved task cancellation. Coupled with the existing Monte Carlo evolutionary algorithm for clustering, this version delivers a much faster and more efficient music discovery experience.
✨ Key Features Added in This Release
- Migration to Redis Queue AND from SqlLite to PostgreSQL for Parallel Processing:
- Replaced Celery with Redis Queue (RQ) as the distributed task queue system. This move provides a simpler, more efficient backbone for managing asynchronous tasks, especially beneficial for running multiple workers in parallel.1
- Enables the ability to run multiple workers to analyze music concurrently on multiple nodes, drastically speeding up the audio analysis process for large music libraries.
- Removed the need of a shared PVC between node to give access to the Database and improved performance and stability.
- Enhanced Task Cancellation:
- Improved support for running task cancellation, which works more effectively with Redis Queue's design.1 This allows for better control over ongoing analysis and clustering tasks.
- Better Logging View:
- Introduced improvements to the logging view, providing clearer insights into the status and progress of music analysis and clustering tasks.
🛠️ Detailed File Changes & Function Modifications
Core Backend Logic (app.py, tasks.py, etc.)
- Task Queue Integration:
- Removed Celery-specific decorators and task definitions.
- Implemented Redis Queue (RQ) job queuing mechanisms, likely using q.enqueue() for submitting tasks.
- Adjusted task execution logic to align with RQ's simpler API for task management.
- Worker Management:
- Updated logic to support the initiation and management of multiple parallel workers, leveraging RQ's capabilities for distributed processing.
- Task Cancellation Logic:
- Refined or added explicit task cancellation mechanisms, taking advantage of RQ's more direct approach to revoking jobs.
Configuration (config.py)
- Queue Configuration:
- Modified configuration parameters to specify Redis connection details for RQ, replacing previous Celery broker settings.
Dependencies (requirements.txt / pyproject.toml)
- Dependency Update:
- Removed celery and related packages.
- Added rq (Redis Queue) to the project dependencies.
- Using PostgreSQL instead of Sqlite, for better performance and parallelism.
Deployment (Dockerfile, deployment.yaml examples)
- Containerization & Orchestration:
- Updated Dockerfile to install rq and configure the application to run RQ workers.
- Adjusted deployment.yaml examples to reflect the new worker setup for multi-node parallel execution, potentially changing entry points or commands for worker processes.
Frontend (index.html, static/js/main.js, etc.)
- Logging Interface:
- Implemented updates to the web UI to display the improved logging information, offering a clearer real-time view of task progress and status.
---
What's Changed
- feat: migrate from celery to redis queue, add multiple worker support, task cancellation, and better logging view in ea18e05
Full Changelog: v0.1.5-alpha...ea18e05