Skip to main content

Common tools for the computational analysis of Indian Art Music.

Project description

compIAM v0.3.0

compIAM (computational analysis of Indian Art Music) is a collaborative initiative involving many researchers that aims at putting together a common repository of datasets, tools, and models for the computational analysis of Carnatic and Hindustani music.

You can get started on the Computational Analysis of Indian Art Music through our ISMIR 2022 Tutorial: Computational Methods For Supporting Corpus-Based Research On Indian Art Music.

Installing compIAM

compIAM is registered to PyPI, therefore the latest release can be installed with:

pip install compiam

Nonetheless, to get the latest version of the library with the fresher updates, proceed as follows:

git clone https://github.com/MTG/compIAM.git
cd compIAM

virtualenv -p python3 compiam_env
source compiam_env/bin/activate

pip install -e .
pip install -r requirements.txt

Python version: At this moment, we have successfully tested compiam in python versions: 3.9 - 3.11. Support to py3.8 has been dropped, since it reached end-of-life. Support to 3.12 and 3.13 is coming soon!

Basic usage

Importing the integrated tools

compIAM does not have terminal functionalities but it is to be used within Python based-projects. First, import the library to your Python project with: import compiam.

The integrated tools and models are organized by:

  1. The following fundamental musical aspects: melody, rhythm, structure and timbre (in v0.3.0 we are introducing new section, separation)
  2. The task these tools tackle.

You can access the several included tools by importing them from their corresponding modules:

from compiam.melody.pitch_extraction import FTANetCarnatic
from compiam.rhythm.transcription import FourWayTabla

TIP: Print out the available tool for each category: compiam.melody.list_tools(). Print out the available tasks for each category: compiam.melody.list_tasks(), and print out the available tools for each module using: compiam.melody.list_tools(). You may also list only the tools for a particular task: compiam.melody.pitch_extraction.list_tools()

Wrappers

compIAM also includes wrappers to easily initialize relevant datasets, corpora, and also pre-trained models for particular problems.

Wrapper Description Option list
compiam.load_dataset() Initializing dataset loaders Run compiam.list_datasets()
compiam.load_corpora() Accessing the Dunya corpora Run compiam.list_corpora()
compiam.load_model() Initializing pre-trained models Run compiam.list_models()

Available components

Tools and models

compIAM is structured by the fundamental aspects of music in which we classify the several relevant tasks for the Indian Art Music tradition. Check here the available tools for:

Accessing the Dunya corpora

We do provide access to the Carnatic and Hindustani corpora in Dunya. For both corpora, there is access to the CC and the non-CC parts. More details on accessing the Dunya corpora are given here.

Dataset loaders

Direct and MIR-standardized access to the datasets for the computational analysis of Indian Art Music is given through mirdata loaders. The current available datasets in compIAM are:

The datasets marked with * have been compiled within the framework of the CompMusic project.

Contributing

compIAM is very much open for contributions. You can contribute by:

  • Adding new datasets
  • Adding tools or models
  • Improving the library features
  • Writing walkthroughs of the included tools
  • Identifying and fixing bugs

Please check the contribution guidelines and get in touch in case you have questions or suggestions.

Example notebooks

We include, in this repo, example notebooks for users to better understand how to use compiam and also showcase

License

compIAM is Copyright 2024 Music Technology Group - Universitat Pompeu Fabra

compIAM is released under the terms of the GNU Affero General Public License (v3 or later). See the COPYING file for more information. For the case of a particular tool or implementation that has a specific different licence, this is explicitly specified in the files related to this tool, and these terms must be followed.

For any licensing enquires, please contact us at mtg-info@upf.edu

Citing

@software{compiam_mtg_2023,
  author = {{Genís Plaja-Roglans and Thomas Nuttall and Xavier Serra}},
  title = {compIAM},
  url = {https://mtg.github.io/compIAM/},
  version = {0.3.0},
  year = {2023}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compiam-0.4.0.tar.gz (243.9 kB view details)

Uploaded Source

Built Distribution

compiam-0.4.0-py3-none-any.whl (275.1 kB view details)

Uploaded Python 3

File details

Details for the file compiam-0.4.0.tar.gz.

File metadata

  • Download URL: compiam-0.4.0.tar.gz
  • Upload date:
  • Size: 243.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for compiam-0.4.0.tar.gz
Algorithm Hash digest
SHA256 4c5850a505acfa3d7164131625a274c652f2313393f06a053f15a0fded8f7870
MD5 34e548f3fb66c93f854f0bafea9da23c
BLAKE2b-256 6fe07c585e812dba3477f78823eb8ca2c7b0b58fb5dd4ea8363d231d77d5abe2

See more details on using hashes here.

File details

Details for the file compiam-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: compiam-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 275.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for compiam-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7cb4fca1ebf03060f1d70b3618ccf98574cf514c8b65c90462163f683f80eb14
MD5 08a579ec7d0ff375486db8318b6a03eb
BLAKE2b-256 9128f604b74fcfb5a6296b1506594f904f4121baae0b535894f2695d5f9eb940

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page