Skip to content

    These docs are a work in progress. The software can already be useddownload WavePhase.

    Documentation

    Docs for WavePhase v0.9.3 · reviewed 2026-08-10

    A newer app release may have shipped since this review. These pages describe the latest public WavePhase release. If something looks different in your build, check for an app update.

    Nodes & Signals

    Value Types

    Every pin carries a typed value. Types are colour-coded so you can read a patch at a glance, and the editor only lets you connect compatible pins.

    The types

    F32

    A floating-point number, usually normalised 0..1 (but can be wider). The workhorse type for intensities, levels, and continuous control.

    I32

    An integer. Used for indices, counters, and selecting branches in switches.

    Bool

    True / false. Triggers, gates, and conditions. A rising edge is what fires pulses and counters.

    String

    Text. Labels, OSC addresses, and dynamic text for visuals.

    Key

    A musical key (e.g. Am, C, F#m), detected from the audio or set as a constant.

    Color

    An RGBA colour. Each channel is 0..1 and can be wired individually or picked from a swatch.

    Video

    A rendered video/visual signal — a lightweight reference passed between generators, effects, compositors, and outputs.

    Array

    An ordered bundle of typed values, used to keep complex patches tidy and pass groups of signals around.

    FixtureCue

    A snapshot of per-channel fixture values — a stored look fed to a fixture output as one connection.

    Pins are colour-coded in the editor. Connect compatible types, or insert a Convert node.

    Converting between types

    When you need to bridge two types, use a Convert node. Common conversions include:

    • F32I32 — with an optional rounding mode.
    • F32/I32String — turn numbers into text (e.g. for a text visual) and back.
    • KeyString — get a readable label from a detected key.

    Type safety helps you

    If two pins won't connect, it's because their types differ — drop a convert node in between rather than fighting it. This prevents whole classes of mistakes.

    Bundling with arrays

    An Array lets you collect several typed values into one connection and split them back out later:

    • Array Create gathers typed inputs into a single array output.
    • Array Out splits an array back into its individual typed outputs.
    • Array Switch selects one of several arrays by index, with optional crossfade.

    Arrays are great for moving a related set of values — say the RGB of a look, or a bank of fader values — around the patch as a unit.

    Constants

    Many types have a constant form (for example Const Key or a fixed number) so you can compare against or feed a known value without an external source. These pair naturally with the comparison nodes covered in Logic, Math & Utility.

    Was this page helpful?