Skip to main content

Piecewise-exponential curves designed for musical expressiveness.

Project description

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.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

expenvelope-0.7.2.post2-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

Details for the file expenvelope-0.7.2.post2-py3-none-any.whl.

File metadata

File hashes

Hashes for expenvelope-0.7.2.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 a022bb9fdf9aaf679240a0de362810da9bd253fc0946222ee52dbf9caf8f960e
MD5 df2832823476818f238c20f09767735a
BLAKE2b-256 c43f14bb5ca3ad0d39f2cb1c7e79442aca216c685b14f401c9c0ec19a605734b

See more details on using hashes here.

Supported by

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