hypercube

hypercube · sources · schema v1

4D 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.

A 4D-tesseract wavetable-terrain oscillator — the 4-dimensional sibling of CUBE. CUBE stacks three wavetables (FLOOR / WALL / CEILING) into a 3D scalar field and plays the heightmap of a flat plane sliced through it as its waveform; HYPERCUBE adds a FOURTH wavetable (HOLO) and an ALPHA axis that is the slice's 4th-dimension (w) coordinate. As you raise ALPHA the field's occupancy blends toward the HOLO cell (f4 = (1−alpha)·f3 + alpha·dH) — a genuine tesseract cross-section, where ALPHA selects WHICH 3D field the still-2D plane is cut from. At ALPHA = 0 the render collapses to a plain three-table CUBE, byte-for-byte. You aim the slicing plane with the Y height knob and three rotation knobs (Rot X / Y / Z), each CV-able; MORPH cross-fades the layers, CONNECT bulges the interior, CRUSH bit-reduces the read-out, FOLD is a west-coast wavefolder, and WRAP/MATERIAL choose how the slice reads outside the cube and how dense the field is. It is a pitched V/oct oscillator with a stereo ±SPREAD (L/R read slightly offset planes), and the card shows a live WebGL render of the 4D cube, the cut plane, and the output waveform — patchable out the VIDEO port, and switchable off to save GPU.

the faceplate

hypercubepitchcvslice_ycvslice_rxcvslice_rycvslice_rzcvmorph_fccvconnectcvcrushcvfold_cvcvalphacvtunecvLaudioRaudiovideo_outmono-videoaudiocvgatepitch
11 inputs · 3 outputs · 20 params

inputs

idcablewhat it does
pitchcvMono 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_ycvCV 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_rxcvCV 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_rycvCV 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_rzcvCV 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_fccvCV 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)
connectcvCV 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)
crushcvCV 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_cvcvCV 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)
alphacvCV 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)
tunecvCV 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

idcablewhat it does
LaudioLeft 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
RaudioRight audio channel, including the +SPREAD plane offset (the partner of L). Together L and R carry the spread stereo image.
audio signal
video_outmono-videoA 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

idlabelrangedefaultcurve
tuneTune-36..36st0linear
fineFine-100..100¢0linear
morph_fcMorph0..10linear
connectConnect0..10linear
crushCrush0..10linear
foldFold0..10linear
alphaAlpha0..10linear
spreadSpread0..10linear
slice_yY0..10.5linear
slice_rxRot X-3.1416..3.14160linear
slice_ryRot Y-3.1416..3.14160linear
slice_rzRot Z-3.1416..3.14160linear
levelLevel0..21linear
wrapWrap0..10discrete
materialMaterial0..10discrete
view_zoomZoom0.3..31log
view_rot_xView X-3.1416..3.14160.6linear
view_rot_yView Y-3.1416..3.14160.7linear
view_rot_zView Z-3.1416..3.14160linear
screen_onScreen0..11discrete

controls

controlwhat it does
AlphaALPHA — 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.
ConnectBlends the floor and ceiling layers into a single connected interior shape (0 = separate, 1 = fully connected). CV via the CONNECT input.
CrushBit/sample reduction applied to the slice's read-out waveform (0 = clean, max = heavily crushed) for digital grit. CV via the CRUSH input.
FineFine pitch trim in cents (−100..+100) for tuning between the semitone steps of TUNE.
FoldWest-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.
LevelOutput gain on the sliced audio (0..2, applied after FOLD); 1 = unity, above 1 boosts.
MaterialField density model: SMOOTH (0) = continuous density gradients, HARD (1) = a binary solid (sharp inside/outside), which makes the sliced waveform edgier.
MorphCross-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.
ScreenTurns 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 XRotation of the slicing plane about the X axis (±π radians), tilting which surface contour it reads. CV via the ROT X input.
Rot YRotation of the slicing plane about the Y axis (±π radians). CV via the ROT Y input.
Rot ZRotation of the slicing plane about the Z axis (±π radians). CV via the ROT Z input.
YHeight of the slicing plane through the cube (0..1) — scans the cut from the floor up to the ceiling. CV via the Y input.
SpreadStereo 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).
TuneCoarse pitch in semitones (−36..+36), summed with the FINE offset and the PITCH/TUNE CV to set the oscillator fundamental.
View XVisualization-only camera rotation about X — orbits the 3D view (no effect on audio).
View YVisualization-only camera rotation about Y — orbits the 3D view (no effect on audio).
View ZVisualization-only camera rotation about Z — orbits the 3D view (no effect on audio).
ZoomVisualization-only camera zoom for the 4D cube view (no effect on sound or the selected slice).
WrapWhat 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.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo