Skip to main content

An Rust-backed implementation of the Xenakis Sieve

Project description

xensieve-py

An implementation of the Xenakis Sieve, providing a Sieve from a string expression that filters integer sequences into iterators of integers, Boolean states, or interval widths. Sieves are built from Residuals, defined as a modulus (M) and a shift (S), notated M@S. Sieve string expressions, and Sieve structs, support complementation, intersection, symmetric difference, and union operations on Residuals with operators !, &, ^ and |, respectively.

The Xenakis Sieve is tool for generating discrete interval patterns. Such patterns have boundless applications in creative domains: the Xenakis Sieve can be used to generate scales or multi-octave pitch sequences, rhythms and polyrhythms, and used to control countless other aspects of pictorial or architectural design.

This Rust implementation follows the Python implementation in Ariza (2005), with significant performance and interface enhancements: https://direct.mit.edu/comj/article/29/2/40/93957

Code: https://github.com/flexatone/xensieve-py

Rust Implementation

The Python implementation is built with PyO3, which wraps the Rust core library xensieve.

Code: https://github.com/flexatone/xensieve-rs

Docs: https://docs.rs/xensieve

Crate: https://crates.io/crates/xensieve

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

xensieve-0.5.1.tar.gz (8.5 kB view hashes)

Uploaded Source

Built Distributions

xensieve-0.5.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

xensieve-0.5.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

xensieve-0.5.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

xensieve-0.5.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

xensieve-0.5.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

xensieve-0.5.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

xensieve-0.5.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

xensieve-0.5.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

xensieve-0.5.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

xensieve-0.5.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

xensieve-0.5.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

xensieve-0.5.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

xensieve-0.5.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

xensieve-0.5.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

xensieve-0.5.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

xensieve-0.5.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

xensieve-0.5.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

xensieve-0.5.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

xensieve-0.5.1-cp312-none-win_amd64.whl (144.9 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

xensieve-0.5.1-cp312-none-win32.whl (141.0 kB view hashes)

Uploaded CPython 3.12 Windows x86

xensieve-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

xensieve-0.5.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

xensieve-0.5.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

xensieve-0.5.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

xensieve-0.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

xensieve-0.5.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.5+ i686

xensieve-0.5.1-cp312-cp312-macosx_11_0_arm64.whl (258.4 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

xensieve-0.5.1-cp312-cp312-macosx_10_12_x86_64.whl (261.1 kB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

xensieve-0.5.1-cp311-none-win_amd64.whl (144.7 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

xensieve-0.5.1-cp311-none-win32.whl (140.5 kB view hashes)

Uploaded CPython 3.11 Windows x86

xensieve-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

xensieve-0.5.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

xensieve-0.5.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

xensieve-0.5.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

xensieve-0.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

xensieve-0.5.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.5+ i686

xensieve-0.5.1-cp311-cp311-macosx_11_0_arm64.whl (259.0 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

xensieve-0.5.1-cp311-cp311-macosx_10_12_x86_64.whl (261.7 kB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

xensieve-0.5.1-cp310-none-win_amd64.whl (144.7 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

xensieve-0.5.1-cp310-none-win32.whl (140.5 kB view hashes)

Uploaded CPython 3.10 Windows x86

xensieve-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

xensieve-0.5.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

xensieve-0.5.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

xensieve-0.5.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

xensieve-0.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

xensieve-0.5.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.5+ i686

xensieve-0.5.1-cp310-cp310-macosx_11_0_arm64.whl (258.9 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

xensieve-0.5.1-cp310-cp310-macosx_10_12_x86_64.whl (261.6 kB view hashes)

Uploaded CPython 3.10 macOS 10.12+ x86-64

xensieve-0.5.1-cp39-none-win_amd64.whl (144.6 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

xensieve-0.5.1-cp39-none-win32.whl (140.9 kB view hashes)

Uploaded CPython 3.9 Windows x86

xensieve-0.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

xensieve-0.5.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

xensieve-0.5.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

xensieve-0.5.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

xensieve-0.5.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

xensieve-0.5.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.5+ i686

xensieve-0.5.1-cp38-none-win_amd64.whl (144.8 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

xensieve-0.5.1-cp38-none-win32.whl (141.3 kB view hashes)

Uploaded CPython 3.8 Windows x86

xensieve-0.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

xensieve-0.5.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

xensieve-0.5.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

xensieve-0.5.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

xensieve-0.5.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

xensieve-0.5.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl (1.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.5+ i686

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