https://github.com/olilarkin/paulstretch-for-live
Ableton Live Extension embedding Paulstretch
https://github.com/olilarkin/paulstretch-for-live
ableton extreme timestretch wasm
Last synced: 23 days ago
JSON representation
Ableton Live Extension embedding Paulstretch
- Host: GitHub
- URL: https://github.com/olilarkin/paulstretch-for-live
- Owner: olilarkin
- License: gpl-2.0
- Created: 2026-04-20T12:52:58.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-06-07T18:45:48.000Z (about 2 months ago)
- Last Synced: 2026-06-28T14:35:09.321Z (26 days ago)
- Topics: ableton, extreme, timestretch, wasm
- Language: TypeScript
- Homepage:
- Size: 858 KB
- Stars: 76
- Watchers: 1
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Paulstretch For Live — Ableton Live extension
*This is an experimental program for extreme stretching the audio.*

Embeds [libpaulstretch](https://github.com/olilarkin/libpaulstretch) — a modern
C++ rewrite of [paulstretch](https://hypermammut.sourceforge.net/paulstretch/) —
as an Ableton Live extension.
See also [Paulstretch For Web](https://github.com/olilarkin/paulstretch-for-web)
## Just want to use it?
Extensions are a new feature in Ableton Live 12.4.5 (Suite), currently in beta.
They won't work in previous versions.
Grab the prebuilt `Paulstretch-.ablx` from this repo's
[Releases](../../releases) and install it into Live (Preferences →
Extensions). You don't need any of the build steps below.
## Building from source
This extension depends on the **Ableton Extensions SDK**
(`@ableton-extensions/sdk` and `@ableton-extensions/cli`), which is **not yet
published to npm**. `package.json` references both as local tarballs under
`vendor/`:
```jsonc
"@ableton-extensions/sdk": "file:./vendor/ableton-extensions-sdk-.tgz" // dependency
"@ableton-extensions/cli": "file:./vendor/ableton-extensions-cli-.tgz" // devDependency
```
So before `npm install` will work you have to drop those two tarballs into
`vendor/` yourself.
### 1. Get the SDK and CLI in place
Download the Extensions SDK zip (e.g. `extensions-sdk-.zip`) from the
[Extensions SDK site](https://ableton.github.io/extensions-sdk) and unzip it.
Inside you'll find two tarballs:
```
ableton-extensions-sdk-.tgz
ableton-extensions-cli-.tgz
```
Copy both into a `vendor/` folder at the root of this repo:
```sh
mkdir -p vendor
cp /path/to/ableton-extensions-sdk-.tgz vendor/
cp /path/to/ableton-extensions-cli-.tgz vendor/
```
The filenames must match the `file:./vendor/…` paths in `package.json` exactly
(they carry the version).
### 2. Install dependencies
```sh
npm run install:all # installs the host, then src/dialog
```
### 3. Build and package
```sh
npm run build # vite-build the dialog + esbuild the host
npm run package # produce Paulstretch-.ablx
```
### 4. Run
```sh
npm start
```
opens Ableton Live against the local build (Live must have Developer Mode
enabled in Preferences → Extensions).
## Dev tips
- `npm run dev:ui` — run the dialog standalone in Vite for UI iteration.
In standalone mode the file menu / drag-drop are active; the Apply bar
is hidden.
- The dialog detects "host mode" by checking whether `window.__INITIAL_DATA__`
contains real values (vs the placeholder text from `index.html`).
- The .ablx packager includes the entire Vite-built `dist/dialog/` tree as
runtime assets (see `package.js`'s `ABLX_INCLUDES`).
## License
Paulstretch For Live is licensed under the GPL v2.0
The bundled dialog ships two fonts, each under the
[SIL Open Font License 1.1](https://openfontlicense.org). Their license texts
are included both in this repo and inside every `.ablx`, under
`src/dialog/public/licenses/` → `dist/dialog/licenses/`:
- **Inter** — © The Inter Project Authors — `Inter-LICENSE.txt`
- **JetBrains Mono** — © The JetBrains Mono Project Authors — `JetBrainsMono-LICENSE.txt`
[libpaulstretch](https://github.com/olilarkin/libpaulstretch) is also GPL v2.0
## Credits
Paulstretch For Live. Copyright [Oliver Larkin](https://olilarkin.com) 2026.
Based on [Paulstretch](https://hypermammut.sourceforge.net/paulstretch/) by
[Nasca Octavian Paul](https://www.paulnasca.com/).