You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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> (here cipp0.klang), so every
generated file sat under a dotted path. Several CDP programs — confirmed for multiosc, synspline and morph — misparse such a path and abort with ERROR: 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 found when 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 .ana file 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 .ana header 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 bare input 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 .html loader, and the vite
dev-dependency. None of it was referenced by KLANG.