MCPcopy
hub / github.com/Music-and-Culture-Technology-Lab/omnizart

github.com/Music-and-Culture-Technology-Lab/omnizart @v0.6.3 sqlite

repository ↗ · DeepWiki ↗ · release v0.6.3 ↗
819 symbols 2,419 edges 124 files 275 documented · 34%
README

OMNIZART

build docs PyPI version PyPI - License PyPI - Downloads Docker Pulls

DOI DOI

Omnizart is a Python library that aims for democratizing automatic music transcription. Given polyphonic music, it is able to transcribe pitched instruments, vocal melody, chords, drum events, and beat. This is powered by the research outcomes from Music and Culture Technology (MCT) Lab. The paper has been published to Journal of Open Source Software (JOSS).

Transcribe your favorite songs now in Colab Open In Colab or Replicate

Quick start

Visit the complete document for detailed guidance.

Pip

# Install omnizart
pip install omnizart

# Download the checkpoints
omnizart download-checkpoints

# Transcribe your songs
omnizart drum transcribe <path/to/audio.wav>
omnizart chord transcribe <path/to/audio.wav>
omnizart music transcribe <path/to/audio.wav>

Docker

docker pull mctlab/omnizart:latest
docker run -it mctlab/omnizart:latest bash

Conda (install from source)

git clone https://github.com/Music-and-Culture-Technology-Lab/omnizart
cd omnizart
# Create a new conda environment
conda env create -f environment.yml
conda activate omnizart
# Install omnizart
pip install .
omnizart download-checkpoints

Supported applications

Application Transcription Training Evaluation Description
music :heavy_check_mark: :heavy_check_mark: Transcribe musical notes of pitched instruments.
drum :heavy_check_mark: :interrobang: Transcribe events of percussive instruments.
vocal :heavy_check_mark: :heavy_check_mark: Transcribe note-level vocal melody.
vocal-contour :heavy_check_mark: :heavy_check_mark: Transcribe frame-level vocal melody (F0).
chord :heavy_check_mark: :heavy_check_mark: Transcribe chord progressions.
beat :heavy_check_mark: :heavy_check_mark: Transcribe beat position.

NOTES The current implementation for the drum model has unknown bugs, preventing loss convergence when training from scratch. Fortunately, you can still enjoy drum transcription with the provided checkpoints.

Compatibility Issue

Currently, Omnizart is incompatible for ARM-based MacOS system due to the underlying dependencies. More details can be found in the issue #38.

Citation

If you use this software in your work, please cite:

@article{Wu2021,
  doi = {10.21105/joss.03391},
  url = {https://doi.org/10.21105/joss.03391},
  year = {2021},
  publisher = {The Open Journal},
  volume = {6},
  number = {68},
  pages = {3391},
  author = {Yu-Te Wu and Yin-Jyun Luo and Tsung-Ping Chen and I-Chieh Wei and Jui-Yang Hsu and Yi-Chin Chuang and Li Su},
  title = {Omnizart: A General Toolbox for Automatic Music Transcription},
  journal = {Journal of Open Source Software}
}

Core symbols most depended-on inside this repo

call
called by 74
omnizart/models/chord_model.py
_interopRequireDefault
called by 45
docs/source/_static/js/waveform-playlist.var.js
defineProperties
called by 42
docs/source/_static/js/waveform-playlist.var.js
shape_list
called by 31
omnizart/models/utils.py
simple_unit
called by 31
omnizart/constants/schema/music_settings.py
conv_block
called by 28
omnizart/models/u_net.py
get_logger
called by 25
omnizart/utils.py
write_yaml
called by 24
omnizart/io.py

Shape

Function 429
Method 271
Class 113
Route 6

Languages

Python81%
TypeScript19%

Modules by API surface

docs/source/_static/js/waveform-playlist.var.js144 symbols
omnizart/setting_loaders.py84 symbols
omnizart/constants/datasets.py43 symbols
omnizart/models/chord_model.py32 symbols
omnizart/music/labels.py27 symbols
omnizart/callbacks.py27 symbols
omnizart/base.py24 symbols
omnizart/models/t2t.py22 symbols
omnizart/models/pyramid_net.py21 symbols
omnizart/utils.py18 symbols
omnizart/vocal/app.py17 symbols
tests/test_utils.py16 symbols

For agents

$ claude mcp add omnizart \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact