hypercube
hypercube · sources · schema v14D tesseract oscillator — a sibling of CUBE that extends the 3D wavetable-navigator field into a FOURTH dimension. On top of CUBE's FLOOR / WALL / CEILING wavetables it adds a fourth "HOLO" wavetable (default basic-shapes, the same as floor/ceiling, so a fresh HYPERCUBE is benign) and an ALPHA axis (0..1) — the slice's 4th-dimension (w) coordinate. The 2D slice is still ray-marched through a 3D field, but ALPHA selects WHICH 3D field by blending the field's occupancy toward the HOLO cell: f4 = (1-alpha)·f3 + alpha·dH, a genuine tesseract cross-section (NOT a 4D march — one extra occ() per step). ALPHA is a continuous, CV-able morph defaulting to 0, where HYPERCUBE collapses byte-for-byte to a plain 3-table CUBE render (off = identity). Everything else mirrors CUBE: MORPH connects the wall to floor/ceiling; CONNECT morphs the connecting curve circle↔V; the slice navigates with Y + Rot X/Y/Z; MATERIAL switches SMOOTH↔HARD; CRUSH is a 3D bitcrush; WRAP toggles silent-outside vs mirror-fold; FOLD is a West-coast wavefolder; a V/oct pitched oscillator (pitch + tune/fine) with stereo L/R SPREAD on SEPARATE L and R output ports; view-only Zoom + Rot X/Y/Z orbit the WebGL2 visualization. CV inputs cover slice Y/rotation, morph, connect, crush, fold, ALPHA, and tune. The pure deterministic field/slice DSP is shared with CUBE in cube-dsp.ts (the HOLO/ALPHA additions are no-ops when absent) and the surface-height scan runs OFF the audio thread so sweeping ALPHA never drops the audio out.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
pitch | cv | Mono V/oct pitch control voltage — the standard 1V-per-octave oscillator pitch input, read directly by the worklet. Summed with the TUNE/FINE offsets (and the TUNE CV) to set the playback fundamental. control voltage (CV) |
slice_y | cv | CV that offsets the Y param — raises or lowers the slicing plane through the cube, scanning the cut across the floor→ceiling stack. control voltage (CV); modulates slice_y (additive offset — ±1 CV sweeps the full range, centered on the knob) |
slice_rx | cv | CV that offsets the Rot X param — tilts the slicing plane about the X axis (±π), changing the surface contour it reads. control voltage (CV); modulates slice_rx (additive offset — ±1 CV sweeps the full range, centered on the knob) |
slice_ry | cv | CV that offsets the Rot Y param — tilts the slicing plane about the Y axis (±π). control voltage (CV); modulates slice_ry (additive offset — ±1 CV sweeps the full range, centered on the knob) |
slice_rz | cv | CV that offsets the Rot Z param — rotates the slicing plane about the Z axis (±π). control voltage (CV); modulates slice_rz (additive offset — ±1 CV sweeps the full range, centered on the knob) |
morph_fc | cv | CV that offsets the Morph param, cross-fading the floor↔ceiling wavetable layers of the field. control voltage (CV); modulates morph_fc (additive offset — ±1 CV sweeps the full range, centered on the knob) |
connect | cv | CV that offsets the Connect param, blending the floor and ceiling into a connected interior shape. control voltage (CV); modulates connect (additive offset — ±1 CV sweeps the full range, centered on the knob) |
crush | cv | CV that offsets the Crush param, driving the bit/sample reduction applied to the slice's read-out waveform. control voltage (CV); modulates crush (additive offset — ±1 CV sweeps the full range, centered on the knob) |
fold_cv | cv | CV that offsets the Fold param, modulating the output wavefolder depth (added harmonics). control voltage (CV); modulates fold (additive offset — ±1 CV sweeps the full range, centered on the knob) |
alpha | cv | CV that offsets the ALPHA param — the slice's 4th-dimension (w) coordinate. Sweeping it morphs the cross-section from the plain 3-table CUBE (alpha 0) toward the HOLO field, the signature HYPERCUBE motion. control voltage (CV); modulates alpha (additive offset — ±1 CV sweeps the full range, centered on the knob) |
tune | cv | CV that offsets the Tune param, shifting pitch in semitones around the base note (summed with the PITCH input and the FINE knob). control voltage (CV); modulates tune (additive offset — ±1 CV sweeps the full range, centered on the knob) |
outputs
| id | cable | what it does |
|---|---|---|
L | audio | Left audio channel of the sliced oscillator, including the −SPREAD plane offset, post-FOLD and post-LEVEL. Split out as its own mono port so the stereo width survives even into a mono input. audio signal |
R | audio | Right audio channel, including the +SPREAD plane offset (the partner of L). Together L and R carry the spread stereo image. audio signal |
video_out | mono-video | A mono-video output carrying a live render of the 4D cube view — the field volume, the cut plane positioned by Y + the rotation knobs (and ALPHA's 4th-dimension slice), and the output waveform. Patch it into VIDEOOUT or any video module; it keeps emitting frames even when the on-card SCREEN is off. mono video stream |
params
| id | label | range | default | curve |
|---|---|---|---|---|
tune | Tune | -36..36st | 0 | linear |
fine | Fine | -100..100¢ | 0 | linear |
morph_fc | Morph | 0..1 | 0 | linear |
connect | Connect | 0..1 | 0 | linear |
crush | Crush | 0..1 | 0 | linear |
fold | Fold | 0..1 | 0 | linear |
alpha | Alpha | 0..1 | 0 | linear |
spread | Spread | 0..1 | 0 | linear |
slice_y | Y | 0..1 | 0.5 | linear |
slice_rx | Rot X | -3.1416..3.1416 | 0 | linear |
slice_ry | Rot Y | -3.1416..3.1416 | 0 | linear |
slice_rz | Rot Z | -3.1416..3.1416 | 0 | linear |
level | Level | 0..2 | 1 | linear |
wrap | Wrap | 0..1 | 0 | discrete |
material | Material | 0..1 | 0 | discrete |
view_zoom | Zoom | 0.3..3 | 1 | log |
view_rot_x | View X | -3.1416..3.1416 | 0.6 | linear |
view_rot_y | View Y | -3.1416..3.1416 | 0.7 | linear |
view_rot_z | View Z | -3.1416..3.1416 | 0 | linear |
screen_on | Screen | 0..1 | 1 | discrete |
controls
| control | what it does |
|---|---|
| Alpha | ALPHA — the 4th-dimension (w) coordinate that makes HYPERCUBE a tesseract: 0 = identity to a 3-table CUBE render (the HOLO table is inert), and raising it blends the field toward the HOLO cell, selecting a different 3D cross-section to slice. CV via the ALPHA input. |
| Connect | Blends the floor and ceiling layers into a single connected interior shape (0 = separate, 1 = fully connected). CV via the CONNECT input. |
| Crush | Bit/sample reduction applied to the slice's read-out waveform (0 = clean, max = heavily crushed) for digital grit. CV via the CRUSH input. |
| Fine | Fine pitch trim in cents (−100..+100) for tuning between the semitone steps of TUNE. |
| Fold | West-coast wavefolder on the output (0 = pass-through, max = hard fold), applied after the slice is sampled and before LEVEL on both L and R, adding harmonics. CV via the FOLD input. |
| Level | Output gain on the sliced audio (0..2, applied after FOLD); 1 = unity, above 1 boosts. |
| Material | Field density model: SMOOTH (0) = continuous density gradients, HARD (1) = a binary solid (sharp inside/outside), which makes the sliced waveform edgier. |
| Morph | Cross-fades the FLOOR↔CEILING wavetable layers of the 3D field (0 = floor, 1 = ceiling), reshaping the terrain the plane slices through. CV via the MORPH input. |
| Screen | Turns the on-card WebGL viz screen on/off. When OFF and the VIDEO output is unpatched, the card skips the render to save GPU — audio keeps running untouched. A patched VIDEO output still receives live frames even with the screen off. |
| Rot X | Rotation of the slicing plane about the X axis (±π radians), tilting which surface contour it reads. CV via the ROT X input. |
| Rot Y | Rotation of the slicing plane about the Y axis (±π radians). CV via the ROT Y input. |
| Rot Z | Rotation of the slicing plane about the Z axis (±π radians). CV via the ROT Z input. |
| Y | Height of the slicing plane through the cube (0..1) — scans the cut from the floor up to the ceiling. CV via the Y input. |
| Spread | Stereo width (0..1): at higher values the L and R taps read planes offset by up to ±5% of depth, so the two channels diverge (0 = mono, both channels identical). |
| Tune | Coarse pitch in semitones (−36..+36), summed with the FINE offset and the PITCH/TUNE CV to set the oscillator fundamental. |
| View X | Visualization-only camera rotation about X — orbits the 3D view (no effect on audio). |
| View Y | Visualization-only camera rotation about Y — orbits the 3D view (no effect on audio). |
| View Z | Visualization-only camera rotation about Z — orbits the 3D view (no effect on audio). |
| Zoom | Visualization-only camera zoom for the 4D cube view (no effect on sound or the selected slice). |
| Wrap | What happens when the slicing plane reads outside the cube: OFF = those regions are silent, ON = the coordinates mirror-fold back inside so the slice stays full. |
source
hypercube.ts on GitHub.