A library for analysis and synthesis of Indian classical music
Project description
Bhargava Swara
=============
A Python library for analyzing and visualizing Indian classical music, including raga, tala, tempo, tradition, ornaments, full analysis, and mel-frequency spectrograms.
Prerequisites
-------------
- **Gemini API Key:** This library uses Google's Gemini API for music analysis. You'll need to:
1. Sign up for a Google Cloud account.
2. Enable the Generative AI API in the Google Cloud Console.
3. Create an API key in the "Credentials" section.
See Google's Generative AI Docs (https://cloud.google.com/generative-ai/docs) for details.
- **Audio Files:** Supported formats include WAV and MP3 for spectrogram generation.
Installation
------------
Install the library using pip:
pip install bhargava_swara
Usage
-----
### Music Analysis
Analyze various aspects of Indian classical music using the Gemini API.
```python
from bhargava_swara import (
analyze_raga,
analyze_tala,
analyze_tempo,
analyze_tradition,
analyze_ornaments,
analyze_music_full
)
# Set your Gemini API key
api_key = "YOUR_API_KEY"
audio = "path/to/audio.wav"
# Individual analyses
print(f"Raga: {analyze_raga(audio, api_key)}")
print(f"Tala: {analyze_tala(audio, api_key)}")
print(f"Tempo: {analyze_tempo(audio, api_key)}")
print(f"Tradition: {analyze_tradition(audio, api_key)}")
print(f"Ornaments: {analyze_ornaments(audio, api_key)}")
# Full analysis
print(f"Full Analysis:\n{analyze_music_full(audio, api_key)}")
# Mel-Frequency Spectrogram Generation
# Generate a mel-frequency spectrogram to visualize the frequency content of an audio file over time.
from bhargava_swara import generate_mel_spectrogram
# Define input and output paths
audio = "path/to/audio.wav"
output = "path/to/output_mel_spectrogram.png"
# Generate the spectrogram
generate_mel_spectrogram(audio, output, n_mels=128, fmax=8000)
print("Mel spectrogram generated successfully!")
audio: Path to the input audio file (e.g., WAV or MP3).
output: Path to save the PNG file (e.g., "spectrogram.png").
n_mels: Number of mel bands (default: 128).
fmax: Maximum frequency in Hz (default: 8000).
Dependencies
google-generativeai>=0.1.0
librosa>=0.10.0
matplotlib>=3.7.0
numpy>=1.24.0
Contributing
Contributions are welcome! Please submit a pull request or open an issue on the GitHub repository (if available).
License
This library is licensed under the MIT License. See the LICENSE file for details.
Change Log
==========
0.0.1 (26/03/2025)
-------------------
- First Release
===========
0.0.2 (27/03/2025)
-------------------
- Fixed missing module files in package
0.0.3 (27/03/2025)
-------------------
- Fixed ornaments detection file
0.0.4 (27/03/2025)
-------------------
- Fixed real time full analysis file
0.0.5 (27/03/2025)
-------------------
- Added mel-frequency spectogram generation
0.0.6 (27/03/2025)
-------------------
- seaborn included. README.txt updated
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bhargava_swara-0.0.6.tar.gz
(9.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bhargava_swara-0.0.6.tar.gz.
File metadata
- Download URL: bhargava_swara-0.0.6.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53a35085d6f49231d3bf3284762fc84e206c070dca935d28af152fbcad9802cb
|
|
| MD5 |
d063e0bbe5db0444bb1fb2e3e63a753e
|
|
| BLAKE2b-256 |
7e827848e3dd3c76db759ee8e4b64f134ea060b70d55dfd193b76d136320b2ed
|
File details
Details for the file bhargava_swara-0.0.6-py3-none-any.whl.
File metadata
- Download URL: bhargava_swara-0.0.6-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d842cedebab53420ea395973e12d35a9d18a448ebdd96867c210527487f4bcc3
|
|
| MD5 |
ddadbf8172b8bffc646f9463212bf8ab
|
|
| BLAKE2b-256 |
0d06dfd917d4dd05c016c30f76491ef61f92423fe6cba909782f194bafe12d83
|