nendo-plugin-classify-core

Nendo plugin for automatic music information retrieval.


Keywords
Nendo, Plugin, Audio, Generative, Music, Production, Analysis
License
MIT
Install
pip install nendo-plugin-classify-core==0.1.0

Documentation

Nendo Plugin Classify Core


nendo core


Website Twitter Discord


Automatic music information retrieval (based on essentia).

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

  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 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.

For more advanced examples, check out the examples folder. or try it in colab:

Open In Colab
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:

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. The fix in this case is to reinstall essentia, this time only installing the essentia-tensorflow package:

pip uninstall -y essentia essentia-tensorflow
pip install essentia-tensorflow

Contributing

Visit our docs to learn all about how to contribute to Nendo: Contributing

License

Nendo: MIT License

Essentia: Affero GPLv3 license