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.0.tar.gz (45.5 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.0-py3-none-any.whl (46.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: expenvelope-0.8.0.tar.gz
  • Upload date:
  • Size: 45.5 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.0.tar.gz
Algorithm Hash digest
SHA256 a707902af973780fcfb3650b4f45159ce0b2b0c8e227ff56d6a9125027436e5e
MD5 f93976ac9b4cdc934fe570659017828c
BLAKE2b-256 595e096db5e9674ebe2254e5a39f06e321de983220cd1bdfccc740745069cd5a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: expenvelope-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 46.4 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a2a33faf3fe12fbc6213302e1b81f6e206830b8b59080fc1d8790a79284e80ea
MD5 f15806fc3f69969e0e66709659736857
BLAKE2b-256 950a03f193157ed66822b917afe6266d98bdcdcb53fee1dc6e7d1c6d61b768d8

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