phases
phases · modulationA drawable complex envelope with up to 24 phases. It starts as a straight horizontal line at the bottom of the grid. Click the envelope line to insert a vertex, then drag that vertex vertically to set its level; its horizontal position fixes its share of the total time. Click a section between vertices to select that phase in pale red and turn Phase Shape: fully left is linear, noon is concave, and fully right is convex. Each phase keeps its own shape. Right-click an interior vertex and choose Delete vertex to join its neighboring phases; the merged phase inherits the original left phase’s shape. Length scales the whole envelope from 0.05 to 30 seconds without moving its normalized playback position. A blue dot tracks the actual audio playhead. Trigger restarts from the current direction’s beginning; Loop repeats continuously and Reverse changes direction in place. Unipolar maps the unchanged drawing to 0…1 CV; Bipolar maps it to −1…+1 CV with a red zero line across the middle. Vertices and shapes are saved and shared with the rack; playback runs in the audio worklet even when the editor is closed.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
trigger | gate | Each rising edge crossing the 0.5 gate threshold restarts playback from the envelope’s beginning: the left endpoint when forward, the right endpoint when reversed. A held gate triggers once and does not hold or repeatedly restart the envelope. gate / trigger; trigger — fires once per rising edge |
phase_trigger | gate | Each rising edge crossing 0.5 restarts the current phase from its entry point in the current playback direction. In reverse this is that phase’s right-hand vertex. Also starts playback if stopped; a held gate fires only once. gate / trigger; trigger — fires once per rising edge |
loop | gate | Each rising edge crossing 0.5 toggles between one-shot and loop playback. A held gate toggles once. Enabling Loop starts an idle envelope from its current position, wrapping to the direction’s beginning if it already reached the terminal endpoint. Disabling Loop allows the current pass to finish. gate / trigger; trigger — fires once per rising edge |
reverse | gate | Each rising edge crossing 0.5 toggles the playback direction. The playhead stays at its current position and continues the other way; a held gate toggles only once. Changing direction while stopped does not start playback. gate / trigger; trigger — fires once per rising edge |
length_cv | cv | Patching this input replaces the Length knob completely. Raw 0 CV selects 0.05 seconds and +1 CV selects 30 seconds, with a linear mapping between them; negative values clamp to the minimum and values above +1 clamp to the maximum. Even a patched zero signal has priority. Unpatching restores the knob. Read per sample; changing the time never seeks or restarts the playhead. control voltage (CV) |
outputs
| id | cable | what it does |
|---|---|---|
phase_cv | cv | The envelope’s current level as one continuous CV output. Unipolar maps the grid bottom to 0 and top to +1; Bipolar maps bottom to −1, center to 0, and top to +1. A stopped one-shot holds its terminal value. Phase retrigger, full retrigger, or loop wrapping can introduce an intentional level discontinuity. control voltage (CV) |
params
| id | label | range | default | curve |
|---|---|---|---|---|
length | Length | 0.05..30s | 0.05 | log |
loop | Loop | 0..1 | 0 | discrete |
polarity | Polarity | 0..1 | 0 | discrete |
reverse | Reverse | 0..1 | 0 | discrete |
controls
| control | what it does |
|---|---|
| Length | The duration of one complete pass, from 0.05 seconds at the minimum and default to 30 seconds at maximum, on a logarithmic knob. Phase durations are proportional to their horizontal widths. Changes take effect during playback without relocating the playhead. A patched Length CV fully overrides the knob and the live readout follows the effective time. |
| Loop | Switch between one-shot and repeated playback. Enabling Loop starts an idle envelope; disabling it finishes the current pass and holds the final voltage. The button shows the effective mode, including changes caused by the Loop gate. |
| Polarity | Unipolar (default): the grid spans 0…+1 CV. Bipolar: the same grid spans −1…+1, with a thin red zero line at the center. Switching changes only the voltage interpretation: vertices, phase shapes, and the playhead remain exactly where they were. |
| Reverse | Switch between forward and reverse playback without moving the playhead. Forward travels left to right; Reverse travels right to left. A new Trigger begins at the corresponding entry endpoint. The button shows the effective direction, including changes caused by the Reverse gate. |
source
phases.ts on GitHub.