Skip to content

anguilla (Documentation)

anguilla is a mapping and interactive machine learning package for digital musical instrument design in Python.

This is an early stage project. Currently, the main interface is the IML class, which allows adding input-output pairs (IML.add) and subsequently mapping points in the input space to outputs (IML.map).

anguilla is designed to be modular and hackable. An IML object is composed of several exchangeable parts:

  • an Embedding embeds input points into a feature space
  • an NNSearch implements nearest-neighbor search in the feature space
  • an Interpolate combines a set of output points using the distances of their corresponding input points from a neighboring query point.

anguilla server will expose the Python API over Open Sound Control (OSC) using iipyper.

For examples and tutorials of how to use anguilla, see our examples repo (TBC).

Install

anguilla can be installed from PyPI:

pip install anguilla-iml

with pytorch

If you encounter an incompatibility between the PyPI versions of pytorch and faiss-cpu, try installing them both from conda (conda install -c pytorch pytorch faiss-cpu) before pip install anguilla-iml.

Develop

See the iil-dev repo for a recommended dev environment.

It's also possible to develop anguilla in isolation. You will need Poetry and your Python environment manager of choice. With conda, for example:

conda create -n anguilla-env python=3.10 poetry
conda activate anguilla-env

then:

git clone git@github.com:Intelligent-Instruments-Lab/anguilla.git
cd anguilla
poetry install

Contact

anguilla is developed by the Intelligent Instruments Lab. Get in touch to collaborate:

iil.isFacebookInstagramX (Twitter)YouTubeDiscordGitHubLinkedInEmail

Funding

The Intelligent Instruments project (INTENT) is funded by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (Grant agreement No. 101001848).