Multitrack visualization
Multitrack visualizer
open full size ↗All 8 stem tracks analyzed simultaneously while the master plays. Each horizontal strip shows one track: the left section is the FFT magnitude spectrum (bars), the right section is the live waveform. A progress bar seeks to any point in the track.
Shape composer
open full size ↗The view divides into 2, 3, or 4 panes. Each pane runs an independent shape renderer reacting to a chosen stem track, with its own shape family, deformation effect, and lighting. The master track always plays; the visual in each pane reacts to whichever stem is selected.
Starts at the 2-minute mark, with a gear icon in each pane for configuring it independently.
Track prominence
open full size ↗Two hypotheses about what makes a stem feel prominent at any given moment. The first is direct: the louder a track is right now, the more it stands out. The second weights sudden increases — a drum hit that breaks the silence draws attention in a way that a pad sustaining at the same average level does not. Three columns show the pipeline: raw level, raw onset energy, and a combined prominence score — the softmax of their sum across active stems. Toggle stems on and off; the prominence scores redistribute among whatever remains active.
Level and onset — definitions
Level prominence
The simplest hypothesis: a louder track is more prominent. The Level column shows the instantaneous mono amplitude of each stem:
\[ P_i^{\text{lv}}(t) = \tfrac{1}{2}\bigl(A_i^L(t) + A_i^R(t)\bigr) \]
This captures sustained elements well — a dense pad or a driving bass line score high throughout the section — but it gives no extra weight to sudden events.
Onset prominence
The second hypothesis is that a rapid increase in volume draws more attention than the same level held steady. Compute the positive amplitude flux at each frame:
\[ \delta_i(t) = \max\!\bigl(0,\; A_i(t) - A_i(t{-}1)\bigr) \]
Then apply a leaky peak-hold so the spike persists briefly before fading:
\[ P_i^{\text{on}}(t) = \max\!\bigl(\delta_i(t),\;\alpha \cdot P_i^{\text{on}}(t{-}1)\bigr) \]
With \(\alpha = 0.92\) at 60 fps the onset energy decays to half in roughly 8 frames (\(\approx\) 130 ms) — long enough to read, short enough to track fast rhythms.
To reveal which track is relatively dominant among the active set \(\mathcal{A}\), the two scores are summed and softmax-normalised with temperature \(\beta = 5\):
\[ \tilde{P}_i(t) = \frac{e^{\,\beta\,\bigl(P_i^{\text{lv}}(t)\,+\,P_i^{\text{on}}(t)\bigr)}}{\displaystyle\sum_{j \in \mathcal{A}} e^{\,\beta\,\bigl(P_j^{\text{lv}}(t)\,+\,P_j^{\text{on}}(t)\bigr)}} \]
A high \(\beta\) sharpens the distribution: when one track spikes, it claims most of the weight and the others collapse toward zero. The Prominence column shows \(\tilde{P}_i\); the Level and Onset columns show the raw inputs before combination.
Track prominence radar chart
open full size ↗The same combined prominence score as a seven-pointed shape. Each axis represents one stem; the vertex travels outward in proportion to that stem's softmax prominence. When a stem dominates — a kick transient, a bass sustain — its axis extends toward the outer ring while the others retract inward.
Prominence composer
open full size ↗One shape per stem. The most prominent stem at any moment takes the full canvas — its shape, lighting, and bloom filling the frame while everything else waits offscreen. When all stems are close in prominence or the signal is quiet, the last winner holds until something new breaks through.
Every stem is independently configurable: Settings assigns each one a shape type, deformation effect, lighting mode, and bloom parameters. A Solo control locks a single stem to audition its visual in isolation.
Radar 3D history
open full size ↗The same prominence radar lifted into 3D: the seven-vertex shape lives on a plane that rotates independently on all three axes and can be dragged to orbit directly. Rather than showing only the current instant, it also redraws several recent frames at the same center, each rotated by exactly how far the shape had spun by that point in time. Count sets how many of these historical rings to draw, Span sets how many frames apart each one is sampled, and every ring fades with age.
Each of the seven edges also carries hidden vertices driven by the two neighboring stems' FFT spectra — invisible at FFT = 0 (a plain heptagon), buckling further off the ring's original plane as it rises. Bins sets how many FFT bins get sampled per edge; Prominence sets how much a stem's own prominence moves its vertex at all, down to a fixed half-size septagon at 0.