github NeptuneHub/AudioMuse-AI v0.2.0-alpha
AudioMuse AI v0.2.0 Alpha Release: Architecture redesign for parallel worker

latest releases: v0.6.7-beta, v0.6.6-beta, v0.6.5-beta...
pre-release3 months ago

🎵 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

Don't miss a new AudioMuse-AI release

NewReleases is sending notifications on new releases.