Skip to main content

A modern Python implementation of Paul Nasca's extreme time stretch algorithm with minimal dependencies.

Project description

Paulstretch

A modern Python implementation of Paul Nasca's extreme sound stretch algorithm. It allows for extremely high stretch factors like 10 or 1000 without introducing the unpleasant grainy artifacts of other time stretch algorithms. It does smear all the transients though.

There was no modern and well maintained python package for this algorithm available on the package index, so I decided to make one. This is a fun DSP algorithm with a permissive license, so everyone should enjoy it!

Installation

If you want to use this package in your own project, install it from the python package index:

pip install paulstretch

If you want to work with the github repository, install the latest version of the uv package manager. A virtual environment will automatically be installed when you run or build the project with uv.

Run Tests

The project uses pytest as its testing framework. Run them like this:

uv run pytest

Build & Publish Package

To build and publish this package on the python package index, this is what you (or rather I) should do:

  1. Increment Version if appropriate

    The package uses semantic versioning, so bump the version depending on the extent of changes.

    uv version --bump patch or

    uv version --bump minor or

    uv version --bump major

  2. Build both the source distribution and the wheels

    uv build

  3. Publish the package:

    uv publish

    Enter your pypi credentials when prompted.

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

paulstretch-0.1.3.tar.gz (214.9 kB view details)

Uploaded Source

Built Distribution

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

paulstretch-0.1.3-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file paulstretch-0.1.3.tar.gz.

File metadata

  • Download URL: paulstretch-0.1.3.tar.gz
  • Upload date:
  • Size: 214.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.21

File hashes

Hashes for paulstretch-0.1.3.tar.gz
Algorithm Hash digest
SHA256 88f3f18ac3b33184714415e98c2a2611e21384178c67567bfb03a17fa976f990
MD5 fe57d05a19d06781fe6bb777442d8c52
BLAKE2b-256 3ffba832707f1a5cb0246617fcd739cc79fa2fc8e4e3103c689ac2450e350029

See more details on using hashes here.

File details

Details for the file paulstretch-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for paulstretch-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ca60e90e9f4441cf908a1ed040008eba2d6ac791d31366e74e5290f0fe04115f
MD5 30747f2a5459eed7f1ad03240bd4387e
BLAKE2b-256 dcc2786e4c96894ed114254658dd3c67ac4b01e09135bcc028021e9010cd05c3

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