Skip to content

Releases: cipp0/KLANG

[1.1.0] — 2026-07-30

Choose a tag to compare

@cipp0 cipp0 released this 30 Jul 12:33
c28bb76

[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> (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.

KLANG-1.0.0.ablx

Choose a tag to compare

@cipp0 cipp0 released this 29 Jul 15:55

First release - bug to discover