Skip to main content

Tölvera is a library for exploring music interaction with artificial life and self-organising systems.

Project description

Tölvera

Tölvera is a Python library designed for composing together and interacting with basal agencies, inspired by fields such as artificial life (ALife) and self-organising systems. It provides creative coding-style APIs that allow users to combine and compose various built-in behaviours, such as flocking, slime mold growth, and swarming, and also author their own. With built-in support for Open Sound Control (OSC) via iipyper and interactive machine learning (IML) via anguilla, Tölvera interfaces with and rapidly maps onto existing creative computing software and hardware, striving to be both an accessible and powerful tool for exploring diverse intelligence in artistic contexts.

Inspired by our lab's location in Iceland, the word Tölvera is an Icelandic kenning based on tölva meaning computer, from tala (number) and völva (prophetess), and vera (being), composed together as number being.

We have employed Tölvera in various collaborative artistic works, including musical performances, compositions, and multimedia installations (see references.bib for peer-reviewed publications). Tölvera's role in these pieces has mainly been "mappable behaviour engine", where interface inputs can control Tölvera programs, and Tölvera runtime data can control interface outputs, in practically any combination. In this way, and to controllable degrees, Tölvera can contribute to the underlying dynamics of a given interactive scenario. It can also add a visual component, and equally has been used without projection in other works.

Tölvera makes use of Taichi, a domain-specific language embedded in Python that enables parallelisation, and is experimental software subject to change.

We would be happy to have you join us on our Discord server!

Showcase & Examples

Examples can be found at iil-examples/tolvera. See also the guide, reference and experiments pages.

Visit the YouTube Playlist (if you'd like to add a video, please get in touch).

type:video

Install

Taichi supports numerous operating systems and backends. If you plan on using Vulkan for graphics (recommended for macOS), you may need to install the Vulkan SDK first and restart your machine.

Tölvera is registered on PyPI and can be installed via a Python package manager such as pip:

pip install tolvera

Develop

For development, we use poetry. Fork/clone this repository and install the package with `poetry:

git clone https://github.com/Intelligent-Instruments-Lab/tolvera # (or clone your own fork)
cd tolvera
poetry install

Known Issues & Limitations

conda create -n tolvera python=3.11
conda activate tolvera
  • Tölvera does not support Intel-based Apple devices (due to anguilla's FAISS dependency, and Mediapipe not supporting Intel Macs).
  • On macOS, an OpenMP issue may prevent Tölvera programs from running, which can be addressed by adding the following environment variable:
export KMP_DUPLICATE_LIB_OK=TRUE
  • Sonification via SignalFlow does not work on Windows.
  • Mediapipe versions may need to be downgraded in order to work on macOS and Windows.
  • OSError: Could not find any hidapi library: this is due to the DualSense (PS5 controller) class. On macOS you can brew install hidapi and it should work.

Contribute

We welcome Pull Requests across all areas of the project:

Community

To discuss Tölvera with developers and other users:

  • Use GitHub Issues to report bugs and make specific feature requests.
  • Use GitHub Discussions to share ideas and ask questions.
  • Use Discord for further support, sharing your work, and general chat.

Across the project, we follow the Berlin Code of Conduct. Please get in touch if you experience or witness any conduct issues.

Roadmap

See Discussion.

Citation

Tölvera is being written about and used in a number of contexts (see references.bib). The current canonical citation is our NIME 2024 paper:

@inproceedings{armitageTolveraComposingBasal2024,
  title = {T{\"o}lvera: {{Composing With Basal Agencies}}},
  booktitle = {Proc. {{New Interfaces}} for {{Musical Expression}}},
  author = {Armitage, Jack and Shepardson, Victor and Magnusson, Thor},
  year = {2024},
  address = {Utrecht, NL},
}

Inspiration

Contact

Tölvera is developed primarily by Jack Armitage and collaborators at the Intelligent Instruments Lab. Get in touch to collaborate:

iil.isFacebookInstagramX (Twitter)YouTubeDiscordGitHubLinkedInEmail

Acknowledgements

We thank the Taichi community for their wonderful project, that makes Tölvera possible.

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

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

tolvera-0.1.0rc14.tar.gz (100.5 kB view details)

Uploaded Source

Built Distribution

tolvera-0.1.0rc14-py3-none-any.whl (109.7 kB view details)

Uploaded Python 3

File details

Details for the file tolvera-0.1.0rc14.tar.gz.

File metadata

  • Download URL: tolvera-0.1.0rc14.tar.gz
  • Upload date:
  • Size: 100.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.5 Darwin/23.5.0

File hashes

Hashes for tolvera-0.1.0rc14.tar.gz
Algorithm Hash digest
SHA256 52040c47bbe7b1b3124807cc72a98f8695157f503ab2d8832942e9919a587360
MD5 61d04777995a8878a64514d4dc6e6fe4
BLAKE2b-256 9e2176b0d8eba2009b9a0f237b238b20640a8723f567e89ec7a74eb79fa62e05

See more details on using hashes here.

File details

Details for the file tolvera-0.1.0rc14-py3-none-any.whl.

File metadata

  • Download URL: tolvera-0.1.0rc14-py3-none-any.whl
  • Upload date:
  • Size: 109.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.5 Darwin/23.5.0

File hashes

Hashes for tolvera-0.1.0rc14-py3-none-any.whl
Algorithm Hash digest
SHA256 ec4fbcd823ad5bc9753fef20cc0619d72bd4cc494da5412dc235ad7a0492dbcd
MD5 17eeea4194b6ca1a35ebfc716ccbcc6e
BLAKE2b-256 185433106b0e91250997b179dc21e8f930053ca0c40945f983db43a64b61a185

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