# Nendo Plugin Classify Core
<br>
<p align="left">
<img src="https://okio.ai/docs/assets/nendo_core_logo.png" width="350" alt="nendo core">
</p>
<br>
<p align="left">
<a href="https://okio.ai" target="_blank">
<img src="https://img.shields.io/website/https/okio.ai" alt="Website">
</a>
<a href="https://twitter.com/okio_ai" target="_blank">
<img src="https://img.shields.io/twitter/url/https/twitter.com/okio_ai.svg?style=social&label=Follow%20%40okio_ai" alt="Twitter">
</a>
<a href="https://discord.gg/gaZMZKzScj" target="_blank">
<img src="https://dcbadge.vercel.app/api/server/XpkUsjwXTp?compact=true&style=flat" alt="Discord">
</a>
</p>
---
Automatic music information retrieval (based on [essentia](https://essentia.upf.edu/)).
## Features
- Extract musical features from a `NendoTrack` or a `NendoCollection`
- Use descriptive features to filter, search and sort your library
- Extract rich features to annotate datasets for training custom models
## Installation
1. [Install nendo](https://github.com/okio-ai/nendo#installation)
2. `pip install nendo-plugin-classify-core`
> **Note**: Installing this plugin together with another nendo plugin that uses `essentia`, you are likely to run into the runtime error `Error: module 'essentia.standard' has no attribute 'TensorflowPredictEffnetDiscogs'`. See the corresponding entry in the [troubleshooting guide](#essentia-cant-find-the-embedding-model) below for instructions on how to fix this issue.
## Usage
Take a look at a basic usage example below.
For more detailed information, please refer to the [documentation](https://okio.ai/docs/classify-core/advanced).
For more advanced examples, check out the examples folder.
or try it in colab:
<a target="_blank" href="https://colab.research.google.com/drive/1mmbjf0NfsF596p2zDWBDryuxvFYMGAzO?usp=sharing">
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
</a>
```python
from nendo import Nendo, NendoConfig
nd = Nendo(config=NendoConfig(plugins=["nendo_plugin_classify_core"]))
track = nd.library.add_track(file_path='/path/to/track.mp3')
track = nd.plugins.classify_core(track=track)
data = track.get_plugin_data(plugin_name="nendo_plugin_classify_core")
print(data)
tracks_with_filtered_tempo = nd.library.filter_tracks(
filters={"tempo": (170, 180)},
plugin_names=["nendo_plugin_classify_core"],
)
assert len(tracks_with_filtered_tempo) == 1
```
## Troubleshooting
### Essentia can't find the embedding model
When I try to run the plugin, I get the following error:
```bash
Failed to import plugin 'nendo_plugin_classify_core'. Error: module 'essentia.standard' has no attribute 'TensorflowPredictEffnetDiscogs'
```
This is due to the fact that you have `essentia` and `essentia-tensorflow` installed at the same time, possibly because you installed another nendo plugin that uses `essentia`, like e.g. [nendo_plugin_quantize_core](https://github.com/okio-ai/nendo_plugin_quantize_core/). The fix in this case is to reinstall essentia, this time only installing the `essentia-tensorflow` package:
```bash
pip uninstall -y essentia essentia-tensorflow
pip install essentia-tensorflow
```
## Contributing
Visit our docs to learn all about how to contribute to Nendo: [Contributing](https://okio.ai/docs/contributing/)
## License
Nendo: MIT License
Essentia: Affero GPLv3 license
Raw data
{
"_id": null,
"home_page": "https://okio.ai",
"name": "nendo-plugin-classify-core",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<3.11",
"maintainer_email": "",
"keywords": "Nendo,Plugin,Audio,Generative,Music,Audio Production,Audio Analysis",
"author": "Felix Lorenz",
"author_email": "felix@okio.ai",
"download_url": "https://files.pythonhosted.org/packages/51/10/b4cb7286280f415581dbcfc60c836c9731828b18bb5b0d4583baa1d25b18/nendo_plugin_classify_core-0.2.11.tar.gz",
"platform": null,
"description": "# Nendo Plugin Classify Core\n\n<br>\n<p align=\"left\">\n <img src=\"https://okio.ai/docs/assets/nendo_core_logo.png\" width=\"350\" alt=\"nendo core\">\n</p>\n<br>\n\n<p align=\"left\">\n<a href=\"https://okio.ai\" target=\"_blank\">\n <img src=\"https://img.shields.io/website/https/okio.ai\" alt=\"Website\">\n</a>\n<a href=\"https://twitter.com/okio_ai\" target=\"_blank\">\n <img src=\"https://img.shields.io/twitter/url/https/twitter.com/okio_ai.svg?style=social&label=Follow%20%40okio_ai\" alt=\"Twitter\">\n</a>\n<a href=\"https://discord.gg/gaZMZKzScj\" target=\"_blank\">\n <img src=\"https://dcbadge.vercel.app/api/server/XpkUsjwXTp?compact=true&style=flat\" alt=\"Discord\">\n</a>\n</p>\n\n---\n\nAutomatic music information retrieval (based on [essentia](https://essentia.upf.edu/)).\n\n## Features\n\n- Extract musical features from a `NendoTrack` or a `NendoCollection`\n- Use descriptive features to filter, search and sort your library\n- Extract rich features to annotate datasets for training custom models\n\n## Installation\n\n1. [Install nendo](https://github.com/okio-ai/nendo#installation)\n2. `pip install nendo-plugin-classify-core`\n\n > **Note**: Installing this plugin together with another nendo plugin that uses `essentia`, you are likely to run into the runtime error `Error: module 'essentia.standard' has no attribute 'TensorflowPredictEffnetDiscogs'`. See the corresponding entry in the [troubleshooting guide](#essentia-cant-find-the-embedding-model) below for instructions on how to fix this issue.\n\n## Usage\n\nTake a look at a basic usage example below.\nFor more detailed information, please refer to the [documentation](https://okio.ai/docs/classify-core/advanced).\n\nFor more advanced examples, check out the examples folder.\nor try it in colab:\n\n<a target=\"_blank\" href=\"https://colab.research.google.com/drive/1mmbjf0NfsF596p2zDWBDryuxvFYMGAzO?usp=sharing\">\n <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/>\n</a>\n\n\n```python\nfrom nendo import Nendo, NendoConfig\n\nnd = Nendo(config=NendoConfig(plugins=[\"nendo_plugin_classify_core\"]))\n\ntrack = nd.library.add_track(file_path='/path/to/track.mp3')\n\ntrack = nd.plugins.classify_core(track=track)\n\ndata = track.get_plugin_data(plugin_name=\"nendo_plugin_classify_core\")\nprint(data)\n\ntracks_with_filtered_tempo = nd.library.filter_tracks(\n filters={\"tempo\": (170, 180)},\n plugin_names=[\"nendo_plugin_classify_core\"],\n)\n\nassert len(tracks_with_filtered_tempo) == 1\n```\n\n## Troubleshooting\n\n### Essentia can't find the embedding model\n\nWhen I try to run the plugin, I get the following error:\n\n```bash\nFailed to import plugin 'nendo_plugin_classify_core'. Error: module 'essentia.standard' has no attribute 'TensorflowPredictEffnetDiscogs'\n```\n\nThis is due to the fact that you have `essentia` and `essentia-tensorflow` installed at the same time, possibly because you installed another nendo plugin that uses `essentia`, like e.g. [nendo_plugin_quantize_core](https://github.com/okio-ai/nendo_plugin_quantize_core/). The fix in this case is to reinstall essentia, this time only installing the `essentia-tensorflow` package:\n\n```bash\npip uninstall -y essentia essentia-tensorflow\npip install essentia-tensorflow\n```\n\n## Contributing\n\nVisit our docs to learn all about how to contribute to Nendo: [Contributing](https://okio.ai/docs/contributing/)\n\n## License\n\nNendo: MIT License\n\nEssentia: Affero GPLv3 license",
"bugtrack_url": null,
"license": "MIT",
"summary": "Nendo plugin for automatic music information retrieval.",
"version": "0.2.11",
"project_urls": {
"Homepage": "https://okio.ai",
"Repository": "https://github.com/okio-ai/nendo_plugin_classify_core"
},
"split_keywords": [
"nendo",
"plugin",
"audio",
"generative",
"music",
"audio production",
"audio analysis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5697c6a3b9a76052ee3d64d53934389e05036bf138a38172bcb868a897812ad6",
"md5": "26f087322c673d2169e8d84344bb7f49",
"sha256": "ca4ff0d08065ba885bf7f1391eb02571df5cbacf6335bcc6c3349ff0425adeea"
},
"downloads": -1,
"filename": "nendo_plugin_classify_core-0.2.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "26f087322c673d2169e8d84344bb7f49",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<3.11",
"size": 14360,
"upload_time": "2024-03-07T20:22:37",
"upload_time_iso_8601": "2024-03-07T20:22:37.072465Z",
"url": "https://files.pythonhosted.org/packages/56/97/c6a3b9a76052ee3d64d53934389e05036bf138a38172bcb868a897812ad6/nendo_plugin_classify_core-0.2.11-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5110b4cb7286280f415581dbcfc60c836c9731828b18bb5b0d4583baa1d25b18",
"md5": "ebf8eb0181d6447d4e4da818e9133367",
"sha256": "5c02e6b7eb3aecb0256ed16808428938ac39e3c0a52660175615cf759492afb4"
},
"downloads": -1,
"filename": "nendo_plugin_classify_core-0.2.11.tar.gz",
"has_sig": false,
"md5_digest": "ebf8eb0181d6447d4e4da818e9133367",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<3.11",
"size": 15618,
"upload_time": "2024-03-07T20:22:38",
"upload_time_iso_8601": "2024-03-07T20:22:38.384999Z",
"url": "https://files.pythonhosted.org/packages/51/10/b4cb7286280f415581dbcfc60c836c9731828b18bb5b0d4583baa1d25b18/nendo_plugin_classify_core-0.2.11.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-07 20:22:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "okio-ai",
"github_project": "nendo_plugin_classify_core",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "nendo-plugin-classify-core"
}