The Vocal Mastering Application is a Django-based web application designed to facilitate the uploading and processing of vocal audio files. It utilizes advanced audio processing techniques to enhance the quality of vocal recordings, making it suitable for musicians, producers, and audio engineers.
- File Upload: Users can upload vocal audio files in various formats (WAV, MP3, M4A).
- Asynchronous Processing: Audio processing is handled in the background using Celery, allowing users to continue using the application while their files are being processed.
- Advanced Audio Processing: The application employs a range of audio processing techniques, including noise reduction, dynamic compression, equalization, and loudness normalization.
- Job Status Tracking: Users can check the status of their audio processing jobs and download the mastered audio once completed.
- Django: A high-level Python web framework for building web applications.
- Celery: An asynchronous task queue/job queue based on distributed message passing.
- Librosa: A Python package for music and audio analysis.
- NumPy: A library for numerical computations in Python.
- SoundFile: A library for reading and writing sound files.
- Pyloudnorm: A library for loudness normalization.
To set up the Vocal Mastering Application locally, follow these steps:
git clone https://github.com/Amirreza-Jabbari/vocal-mastering.git
cd vocal-mastering
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
Open your web browser and navigate to http://127.0.0.1:8000/.
- Upload Vocal: Navigate to the upload page and select an audio file to upload.
- Processing: After uploading, the application will process the audio file in the background. You will be redirected to a job status page.
- Download Mastered Audio: Once processing is complete, you can download the mastered audio file.
The application is organized into several key components:
forms.py
: Contains the form for uploading audio files.models.py
: Defines the data models for storing audio files and processing jobs.processors.py
: Implements the audio processing logic.tasks.py
: Contains the Celery tasks for asynchronous processing.views.py
: Handles the web requests and responses.urls.py
: Defines the URL routing for the application.
Contributions are welcome! If you have suggestions for improvements or new features, please open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.