Releases: cipp0/KLANG
Releases · cipp0/KLANG
Release list
[1.1.0] — 2026-07-30
[1.1.0] — 2026-07-30
Added
- PVOC Time category (7 processes): Accumulate, Blur, Drunk, Freeze, Stepped Freeze,
Stretch, Trim. - PVOC Spectrum category (14 processes): Average, Enveloped Noise, Exaggerate, Focus,
Invert, Randomise, Stretch Spectrum Above, Stretch Spectrum Below, Suppress, Thin
Randomly, Trace, plus the pre-existing Spectral Average, Spectral Squeeze and Hilite
Filter. - PVOC Pitch category (10 processes): Chorus, Fold, Frequency Shift, Glissando, Pitch
Shift, Pitch Shift Retaining Formants, Randomise Partials, Tune, Waver, plus the
pre-existing Pitch Transpose. - PVOC Formants category (9 processes): Inharmonic Glissandos, Invert Formants, Move
Formants, Narrow Formants, Rotate Formants, Shepard Tone, Shift Formants, Spectral
Negative, Squeeze Formants. - Four additional CDP executables are now driven by the process list:
focus,spec,
specfnu,strange(39 total, up from 35). - Process templates can now interpolate a parameter inside an argument token, so CDP
options that take their value attached to the flag (-f16,-d0.5) are supported.
This is what Focus, Glissando, Shepard Tone and Accumulate need. - Error hint for CDP's
end of amp or frq interpolation is beyond end of one of soundfiles, explaining that Morph's interpolation times must fall inside the duration
of both inputs (the defaults assume at least 1 second of audio). - Audio Input nodes can now load a file themselves, so KLANG no longer depends on
being opened from an Arrangement selection. Two routes, because this embedded webview
cannot be relied on to open a native file dialog and the SDK exposes no picker API:
a Choose audio file… button (a<label>wrapping the file input — a scripted
.click()is ignored here, but activating a label is a real user gesture), and a path
field that accepts a pasted or dropped path and is handled entirely server-side.
Supported formats are stated on the node itself, and a non-readable one is rejected up
front (CDP reads uncompressed audio only — no MP3/FLAC/OGG/M4A).
Fixed
- CDP processes failed whenever a parent directory contained a dot. Ableton names an
extension's temp and storage folders<author>.<name>(herecipp0.klang), so every
generated file sat under a dotted path. Several CDP programs — confirmed formultiosc,
synsplineandmorph— misparse such a path and abort withERROR: INVALID DATA/
Cannot open output file, while others (synth) tolerate it, which is why only some
nodes appeared broken. CDP is now always invoked with its working directory set to the
file directory and given bare filenames, so it never sees the dotted ancestors. - Morph (and any dual-input process) failed with
input file not foundwhen an input
came from a stereo source. PVOC Analysis is mono-only, so a stereo clip is split into
two mono halves that are tracked internally as a pair rather than a single file on disk.
The dual-input code path did not account for this and looked for a file that never
existed. Pair-tracking now applies to both inputs independently; when either side is a
pair, the process runs once per channel and stereo is preserved through the whole chain. - Morph refused two spectra from sources with different bit depths, failing with
Incompatible original-sample-type in input file …. A.anafile records the sample
type of the audio it was analysed from, and sources in one thread routinely disagree —
Live's render, a synthesis node and a browsed 16-bit sample are not all the same type.
Audio is now converted to 32-bit float (Live's own internal format, so losslessly)
before PVOC analysis, which is the only point where this can be fixed since the type is
baked into the.anaheader afterwards. - Loading a saved thread failed on its Audio Input node. A thread stores the file
reference, not the audio, and "Clean up on close" (on by default) deletes those files
when the window closes — so a reopened thread pointed at audio that no longer existed,
surfacing later as a bareinput file not found. Source nodes whose cached audio is
gone are now detected on load and say so, and can be re-pointed at a file on the spot. - Corrected the extension id used in the documented cache paths (
cipp0.klang, not
cipp0.cdpr8, which was a stale earlier install).
Removed
- Unused scaffold left over from the SDK project template:
ui/interface.html,
vite.config.ts,src/html.d.ts, the esbuild.htmlloader, and thevite
dev-dependency. None of it was referenced by KLANG.