Skip to main content

expenvelope

expenvelope is a python library for managing piecewise exponential curves, original intended as a tool for algorithmic music composition. Curves are simple to make, expressive, and useful for controlling dynamics, tempo, and other higher-level parameters.

The central Envelope class bears some relation to SuperCollider's Env object, and is represented behind the scenes as a contiguous set of EnvelopeSegments. There are a number of different class methods available for constructing envelopes, including:

Envelope.from_levels
Envelope.from_levels_and_durations
Envelope.from_points
Envelope.release
Envelope.ar
Envelope.asr
Envelope.adsr
Envelope.from_function

In addition to the central value_at function, utilities have been included to append and insert new points, insert a new interpolated control point without changing the curve, integrate over intervals, find the maximum slope reached, and find the average value, among other things. Envelopes (and EnvelopeSegments) can be added, subtracted, multiplied and divided, with these operations yielding new Envelopes that are close approximations to the resulting function using piecewise exponential curves.

expenvelope is a key dependency of clockblocks, a package for for controlling the flow of musical time, and scamp, a Suite for Computer-Assisted Music in Python.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

expenvelope-0.8.1.tar.gz (45.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

expenvelope-0.8.1-py3-none-any.whl (46.5 kB view details)

Uploaded Python 3

File details

Details for the file expenvelope-0.8.1.tar.gz.

File metadata

  • Download URL: expenvelope-0.8.1.tar.gz
  • Upload date:
  • Size: 45.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for expenvelope-0.8.1.tar.gz
Algorithm Hash digest
SHA256 48e2bce2e5138fe0c2e205eec2114c682af4a51971e0fb834a3bafd808c3a84c
MD5 c3f2dd35c75d490d8236a67b6c7c5c49
BLAKE2b-256 470895805aa9d8281956d41fc0040917a473cf6664a0c537cacab215be1fe72c

See more details on using hashes here.

File details

Details for the file expenvelope-0.8.1-py3-none-any.whl.

File metadata

  • Download URL: expenvelope-0.8.1-py3-none-any.whl
  • Upload date:
  • Size: 46.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for expenvelope-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c18c6b93dbb99d6d732bf5b5dfef40675ca2881d14a99a158097ae7a9d9bd7b4
MD5 6dc29cca01eaba3aee2333123ba078ab
BLAKE2b-256 0bf2c8fd375e8dbcbbae337d2f44e9174cab1fe6bf344513e130c304b926d7fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page