# Novus Visualizers > A free, browser-based visual-effects workstation for music. 13 audio-reactive engines and 78 editable modes render and export entirely on the visitor's own machine. No subscription, no billing, no watermark, no export quota. An account is optional and is only needed for durable cloud saves, private assets and community features. ## What it does - Music visualizers from an uploaded audio file, in a guided editor (https://visualizers.novusstreamsolutions.com/editor) or a node-graph workstation (https://visualizers.novusstreamsolutions.com/studio). - Lyric videos (https://visualizers.novusstreamsolutions.com/lyric-videos), cover art and Spotify Canvas loops (https://visualizers.novusstreamsolutions.com/albums), stream overlays (https://visualizers.novusstreamsolutions.com/overlays), and audio effects (https://visualizers.novusstreamsolutions.com/audio-effects). - Rendering, audio analysis, beat detection and video export all run client-side in the browser. Exports belong to the person who made them and carry no attribution requirement. ## Engines - [Particles](https://visualizers.novusstreamsolutions.com/templates/particles): 6 modes — Dust Storm, Waterfall, Starfield, Fountain Burst, Orbit Swarm, Constellation. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/particles - [Trails](https://visualizers.novusstreamsolutions.com/templates/trails): 6 modes — Comet Shower, Ribbon Flow, Snake/Braid, Orbit Trace, Flow Field, Echo Streaks. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/trails - [Bloom](https://visualizers.novusstreamsolutions.com/templates/bloom): 6 modes — Petal Bloom, Ink Diffusion, Cellular Growth, Vine/Mycelium, Crystal Growth, Ripple Blossom. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/bloom - [Character Motion](https://visualizers.novusstreamsolutions.com/templates/character-motion): 6 modes — Glyph Field, Word Wave, ASCII Cascade, 2D Puppet, 3D Performer, Crowd/Clone. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/character-motion - [Radial](https://visualizers.novusstreamsolutions.com/templates/radial): 6 modes — Pulse Orb, Concentric Rings, Mandala, Sunburst, Orbit Halo, Logo Crown. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/radial - [Spectrum](https://visualizers.novusstreamsolutions.com/templates/spectrum): 6 modes — Line Spectrum, Mirrored Area, Ribbon Surface, Spectrogram Waterfall, Frequency Ridge, Spectral Mesh. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/spectrum - [Bars](https://visualizers.novusstreamsolutions.com/templates/bars): 6 modes — Linear Equalizer, Center Mirror, Stacked Bands, Radial Bars, 3D Columns, Piano/Step Grid. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/bars - [Tunnel](https://visualizers.novusstreamsolutions.com/templates/tunnel): 6 modes — Concentric Rings, Corridor Grid, Warp Field, Spectrum Tube, Waveform Tube, Particle Vortex. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/tunnel - [Waveform](https://visualizers.novusstreamsolutions.com/templates/waveform): 6 modes — Line, Mirrored, Filled, Ribbon, Oscilloscope/Lissajous, 3D Surface. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/waveform - [Logo](https://visualizers.novusstreamsolutions.com/templates/logo): 6 modes — Waveform Ring, Spectrum Halo, Orbiting Bars, Particle Aura, Pulse Frame, Kinetic Reveal. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/logo - [Lattice](https://visualizers.novusstreamsolutions.com/templates/lattice): 6 modes — Kaleidoscope, Tessellation, Wire Polyhedron, Isometric Grid, Truss Web, Prism Stack. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/lattice - [Terrain](https://visualizers.novusstreamsolutions.com/templates/terrain): 6 modes — Ridge Lines, Wire Mesh, Contour Map, Canyon Scroll, Dune Field, Peak Silhouette. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/terrain - [Stage Lights](https://visualizers.novusstreamsolutions.com/templates/stage): 6 modes — Beam Fan, Laser Sweep, Spot Rig, Par Wall, Strobe Bars, Follow Spot. Docs: https://visualizers.novusstreamsolutions.com/help/visualizers/stage ## Start here - [Home](https://visualizers.novusstreamsolutions.com/): what the product is. - [Features](https://visualizers.novusstreamsolutions.com/features): capability overview. - [Templates](https://visualizers.novusstreamsolutions.com/templates): one page per engine, with its modes. - [Compare](https://visualizers.novusstreamsolutions.com/compare): any two engines driven by one bundled loop from a single analyser frame, plus the same project shown in the guided Classic editor and in the Studio node workstation. Both selections are URL-synced (`?a=engine:mode&b=engine:mode&track=`), so a comparison is a shareable link. - [Quick setup](https://visualizers.novusstreamsolutions.com/quick-setup): the shortest path from an audio file to an export. - [Help centre](https://visualizers.novusstreamsolutions.com/help): 6 reference articles. - [Glossary](https://visualizers.novusstreamsolutions.com/glossary): 45 definitions for the vocabulary this product uses — FFT, onset, beat grid, envelope, deterministic export, alpha channel — each with a stable anchor of the form https://visualizers.novusstreamsolutions.com/glossary#slug. - [Tutorials](https://visualizers.novusstreamsolutions.com/tutorials): 14 step-by-step guides. - [Blog](https://visualizers.novusstreamsolutions.com/blog): 24 articles on visualizer craft. - [Changelog](https://visualizers.novusstreamsolutions.com/changelog): release history. - [Tool map](https://visualizers.novusstreamsolutions.com/tool-map): 71 destinations grouped by purpose — the human-readable index of the whole site. ## Policies and provenance - [Accessibility](https://visualizers.novusstreamsolutions.com/accessibility): what is implemented, what is tested, and what is not done yet. - [Editorial policy](https://visualizers.novusstreamsolutions.com/editorial-policy): review, sources, corrections, AI assistance, and the explainer cluster around https://visualizers.novusstreamsolutions.com/glossary and https://visualizers.novusstreamsolutions.com/help/visualizers. - [AI and crawler access](https://visualizers.novusstreamsolutions.com/ai-policy): the human-readable half of robots.txt — every AI agent this site names, why the two groups are treated differently, and what the site asks of an agent that quotes it. - [Languages](https://visualizers.novusstreamsolutions.com/languages): which locales this host actually renders, and which of the estate's 5 shared locales are not translated here yet. - [Security](https://visualizers.novusstreamsolutions.com/security): response headers, ad-free and cross-origin-isolated routes, stated limits, and how to report a vulnerability (visualizers@novusstreamsolutions.com). - [Press kit](https://visualizers.novusstreamsolutions.com/press-kit): naming, logo use, boilerplate and licensing summary. - [System status](https://visualizers.novusstreamsolutions.com/status): which subsystems can be affected by a server incident and which cannot. - [Social accounts](https://visualizers.novusstreamsolutions.com/social): every official Novus Stream Solutions profile, the same list this site publishes as the publisher Organization's sameAs. - [Privacy](https://visualizers.novusstreamsolutions.com/privacy) · [Terms](https://visualizers.novusstreamsolutions.com/terms) · [Cookies](https://visualizers.novusstreamsolutions.com/cookies) · [Community guidelines](https://visualizers.novusstreamsolutions.com/community-guidelines) ## Other apps by the same publisher Different hosts, same publisher. The tools are free, browser-only and need no account, and nothing is uploaded; Novus Restaurant is a published data site rather than a browser tool. The apex site (https://novusstreamsolutions.com) owns the cross-host sitemap index and the full roster. - [Novus Convert](https://convert.novusstreamsolutions.com): Convert and compress audio, video and images in the browser. The tool to reach for when a track arrives in a format the editor will not open, or when a finished export needs to be smaller before upload. - [NSS Background Remover](https://bgremover.novusstreamsolutions.com): Cut out backgrounds and upscale images locally. Useful for preparing a logo, an artist photo or a cover image before it becomes a layer in a visualizer. - [Novus Examples](https://examples.novusstreamsolutions.com): Generated sample files with exact spec sheets, including audio and video in specific codecs and containers, for testing an import or an export path without risking a real track. - [Novus PDF Studio](https://pdf.novusstreamsolutions.com): Merge, split, sign and compress PDFs in the browser. Same no-upload, no-account model as this site. - [Novus Learn](https://learn.novusstreamsolutions.com): Turn an article, paper, video or textbook into cited study material and quizzes. - [Novus AI Stats](https://aistats.novusstreamsolutions.com): Track and analyse what you build with AI, local-first. - [Novus Striker](https://striker.novusstreamsolutions.com): Arcade soccer that runs entirely in a browser tab. - [Novus Restaurant](https://restaurant.novusstreamsolutions.com): Public food-market intelligence built from official data sources, with the provenance shown next to every observation. ## Machine-readable - [Sitemap](https://visualizers.novusstreamsolutions.com/sitemap.xml) - [Full text of this site (llms-full.txt)](https://visualizers.novusstreamsolutions.com/llms-full.txt): everything below, plus the complete text of every help article, tutorial, blog post and glossary entry, and the full control reference for every engine. - [Novus Visualizers — All updates](https://visualizers.novusstreamsolutions.com/rss.xml) - [Novus Visualizers — Blog](https://visualizers.novusstreamsolutions.com/blog/rss.xml) - [Novus Visualizers — Tutorials](https://visualizers.novusstreamsolutions.com/tutorials/rss.xml) - [robots.txt](https://visualizers.novusstreamsolutions.com/robots.txt) - [MCP endpoint](https://visualizers.novusstreamsolutions.com/mcp): the same registries over Model Context Protocol, for a client that speaks it. ## Terms of use for this content The site's software, design and written content are proprietary and all rights are reserved (see https://visualizers.novusstreamsolutions.com/press-kit). Quoting with attribution and a link is welcome. Visitor-created exports are NOT covered by that reservation: they belong to the visitor. # Full content Everything above, expanded. The complete engine and control reference, every help article, every glossary definition, every tutorial and blog post, the FAQ and the release history, in plain markdown. Links are absolute. --- ## Engine and control reference Every engine in the public catalog, with each of its modes and every control the editors expose for it. Control keys are the names used in a `.novusvis` document and in the URL parameters above, so an answer quoting one of these keys is quoting the real thing. ### Particles URL: https://visualizers.novusstreamsolutions.com/templates/particles · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/particles Stable id: `particles` · Engine version: 4.0.0 · Setup effort: medium Layered point, path, area, and volume emitters with calm time-based motion. Focus: Dust, water, stars, fountains, orbits, and linked constellations #### Modes (6) - **Dust Storm** (`dust-storm`) — default: Layered atmospheric dust moving across a wide volume. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=particles&mode=dust-storm - **Waterfall** (`waterfall`): Gravity-led streams with mist and splash layers. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=particles&mode=waterfall - **Starfield** (`starfield`): Deep parallax stars crossing the frame in twelve seconds. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=particles&mode=starfield - **Fountain Burst** (`fountain-burst`): Bounded beat-emitted arcs that settle under gravity. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=particles&mode=fountain-burst - **Orbit Swarm** (`orbit-swarm`): Multi-band particles orbit a shared focal point. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=particles&mode=orbit-swarm - **Constellation** (`constellation`): Sparse linked nodes that breathe with mid frequencies. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=particles&mode=constellation #### Controls (38) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#f5f5f5`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#9ca3af`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#050508`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryShape` — **Geometry** (Geometry, select). Geometry. Options: Circle, Ellipse, Line, Polygon, Star, Rounded Rectangle, Square, Triangle, Soft Glow. Default `circle`. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `directionX` — **Direction X** (Motion, range). Normalized horizontal motion direction. Range -1–1. Default `0`; animatable. - `directionY` — **Direction Y** (Motion, range). Normalized vertical motion direction. Range -1–1. Default `-0.15`; animatable. - `directionZ` — **Direction Z** (Motion, range). Normalized depth motion direction. Range -1–1. Default `0`; animatable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `drag` — **Drag** (Motion, range). Drag. Range 0–1. Default `0.08`; animatable, audio-bindable. - `turbulence` — **Turbulence** (Motion, range). Turbulence. Range 0–2. Default `0.15`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `emitterType` — **Emitter** (Particles, select). Emitter. Options: Point, Path, Area, Volume. Default `volume`. - `particleCount` — **Particle count** (Particles, range). Saved quality-independent particle target. Range 16–2600. Default `900`; animatable. - `particleSize` — **Particle size** (Particles, range). Particle size. Range 0.1–40. Default `0.7`; animatable, audio-bindable. - `lifetime` — **Lifetime** (Particles, range). Particle lifetime in seconds. Range 0.25–60. Default `10`; animatable. - `spawnRate` — **Spawn rate** (Particles, range). Spawn rate. Range 0–500. Default `36`; animatable, audio-bindable. - `gravity` — **Gravity** (Particles, range). Gravity. Range -2–2. Default `0`; animatable, audio-bindable. - `connectionDistance` — **Connection distance** (Particles, range). Connection distance. Range 0–0.5. Default `0.12`; animatable, audio-bindable. --- ### Trails URL: https://visualizers.novusstreamsolutions.com/templates/trails · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/trails Stable id: `trails` · Engine version: 4.0.0 · Setup effort: medium Persistent splines, ribbons, flow fields, and resampled motion paths. Focus: Comets, ribbons, braids, orbits, flow fields, and echoes #### Modes (6) - **Comet Shower** (`comet-shower`) — default: Long luminous heads with decaying multi-band tails. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=trails&mode=comet-shower - **Ribbon Flow** (`ribbon-flow`): Wide layered ribbons following a smooth curl field. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=trails&mode=ribbon-flow - **Snake/Braid** (`snake-braid`): Interwoven spline strands with phase-offset motion. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=trails&mode=snake-braid - **Orbit Trace** (`orbit-trace`): Persistent orbital paths wrapping a central safe zone. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=trails&mode=orbit-trace - **Flow Field** (`flow-field`): Dense particles reveal a deterministic curl-noise field. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=trails&mode=flow-field - **Echo Streaks** (`echo-streaks`): Short streaks repeat through a controlled feedback buffer. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=trails&mode=echo-streaks #### Controls (35) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#a3e635`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#22d3ee`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#030806`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryShape` — **Geometry** (Geometry, select). Geometry. Options: Circle, Ellipse, Line, Polygon, Star, Rounded Rectangle, Square, Triangle, Soft Glow. Default `circle`. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `thickness` — **Thickness** (Geometry, range). Thickness. Range 0.1–100. Default `2`; animatable, audio-bindable. - `directionX` — **Direction X** (Motion, range). Normalized horizontal motion direction. Range -1–1. Default `0`; animatable. - `directionY` — **Direction Y** (Motion, range). Normalized vertical motion direction. Range -1–1. Default `-0.15`; animatable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `turbulence` — **Turbulence** (Motion, range). Turbulence. Range 0–2. Default `0.15`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `trailCount` — **Trail count** (Trails, range). Saved quality-independent trail target. Range 1–400. Default `44`; animatable. - `trailLength` — **Trail length** (Trails, range). Trail length. Range 0.1–12. Default `1.8`; animatable, audio-bindable. - `trailDecay` — **Trail decay** (Trails, range). Trail decay. Range 0–0.99. Default `0.9`; animatable, audio-bindable. - `braidCount` — **Braid strands** (Trails, range). Parallel braided strands. Range 1–12. Default `3`; animatable. - `flowField` — **Flow field** (Trails, select). Flow field. Options: None, Curl, Vortex, Noise, Radial. Default `curl`. --- ### Bloom URL: https://visualizers.novusstreamsolutions.com/templates/bloom · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/bloom Stable id: `bloom` · Engine version: 4.0.0 · Setup effort: medium Organic growth simulations for petals, ink, cells, tendrils, crystals, and ripples. Focus: Controlled growth fronts with complete idle compositions #### Modes (6) - **Petal Bloom** (`petal-bloom`) — default: Layered radial petals unfold over a musical phrase. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bloom&mode=petal-bloom - **Ink Diffusion** (`ink-diffusion`): Soft reaction-diffusion fronts spread through the canvas. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bloom&mode=ink-diffusion - **Cellular Growth** (`cellular-growth`): Audio-reactive cells divide within bounded neighborhoods. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bloom&mode=cellular-growth - **Vine/Mycelium** (`vine-mycelium`): Branching tendrils seek space without unbounded acceleration. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bloom&mode=vine-mycelium - **Crystal Growth** (`crystal-growth`): Symmetric facets advance from deterministic seed points. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bloom&mode=crystal-growth - **Ripple Blossom** (`ripple-blossom`): Concentric growth waves form petal interference patterns. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bloom&mode=ripple-blossom #### Controls (38) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#f472b6`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#34d399`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#080407`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `spectrumRange` — **Spectrum range** (Audio, range). Fraction of the frequency range the visual spans. The top of the FFT is near-silent air on most material, so at 1 the right-hand edge of every spectrum visual barely moves. Range 0.2–1. Default `0.86`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `symmetry` — **Symmetry** (Geometry, range). Repeated geometry symmetry. Range 1–64. Default `1`; animatable. - `noiseDeformation` — **Noise deformation** (Geometry, range). Noise deformation. Range 0–1. Default `0`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `rotationSpeed` — **Rotation** (Motion, range). Slow global rotation for radial/tunnel/bloom structures. Range 0–2. Default `0`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `bloomAmount` — **Bloom amount** (Effects, range). Emissive bloom strength for organic growth engines. Range 0–2. Default `0.45`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `growthModel` — **Growth model** (Growth, select). Growth model. Options: Petal, Reaction Diffusion, Cellular, Branching, Crystal, Ripple. Default `petal`. - `seedCount` — **Seeds** (Growth, range). Initial growth seeds. Range 1–256. Default `7`; animatable. - `growthRate` — **Growth rate** (Growth, range). Growth rate. Range 0–1. Default `0.12`; animatable, audio-bindable. - `branching` — **Branching** (Growth, range). Branching. Range 0–1. Default `0.45`; animatable, audio-bindable. - `spread` — **Spread** (Growth, range). Spread. Range 0–2. Default `0.55`; animatable, audio-bindable. - `cellSize` — **Cell size** (Growth, range). Cell or petal base size. Range 2–100. Default `14`; animatable. - `lifecycle` — **Lifecycle** (Growth, range). Full growth lifecycle in seconds. Range 1–120. Default `12`; animatable. --- ### Character Motion URL: https://visualizers.novusstreamsolutions.com/templates/character-motion · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/character-motion Stable id: `character-motion` · Engine version: 4.0.0 · Setup effort: hard Glyph choreography and production 2D/3D skeleton animation in one engine. Focus: Type fields, cutout rigs, mesh rigs, clips, IK, retargeting, and crowds #### Modes (6) - **Glyph Field** (`glyph-field`) — default: Individual glyphs travel along editable geometry paths. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=character-motion&mode=glyph-field - **Word Wave** (`word-wave`): Words deform along a beat-mapped waveform baseline. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=character-motion&mode=word-wave - **ASCII Cascade** (`ascii-cascade`): Layered ASCII streams cascade at a measured pace. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=character-motion&mode=ascii-cascade - **2D Puppet** (`2d-puppet`): Cutout layers driven by a constrained two-dimensional rig. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=character-motion&mode=2d-puppet - **3D Performer** (`3d-performer`): Imported skinned mesh with retargetable animation clips. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=character-motion&mode=3d-performer - **Crowd/Clone** (`crowd-clone`): A reusable rig is cloned with deterministic timing offsets. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=character-motion&mode=crowd-clone #### Controls (33) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#fbbf24`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#a78bfa`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#06050a`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `displayText` — **Display text** (Character, text). Editable word/glyph string for word-wave and glyph modes. Default `NOVUS`; animatable. - `glyphSet` — **Glyph set** (Character, text). Character set used by glyph-field and ascii modes. Default `NØVUS△○□`. - `letterSpacing` — **Letter spacing** (Character, range). Normalized spacing between word characters. Range 0–0.5. Default `0.08`; animatable. - `characterCount` — **Character count** (Character, range). Glyph, word, or clone count. Range 1–1000. Default `48`; animatable. - `pathDeformation` — **Path deformation** (Character, range). Path deformation. Range 0–2. Default `0.6`; animatable, audio-bindable. - `clipSpeed` — **Clip speed** (Rig, range). Clip speed. Range 0.05–4. Default `1`; animatable, audio-bindable. - `crowdTimingSpread` — **Crowd timing** (Rig, range). Crowd timing. Range 0–2. Default `0.18`; animatable, audio-bindable. --- ### Radial URL: https://visualizers.novusstreamsolutions.com/templates/radial · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/radial Stable id: `radial` · Engine version: 4.0.0 · Setup effort: easy Logo-aware circles, rings, mandalas, rays, and orbiting crowns. Focus: Automatic layout around a central logo or media safe zone #### Modes (6) - **Pulse Orb** (`pulse-orb`) — default: A bounded audio-deformed orb surrounds the center safe zone. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=radial&mode=pulse-orb - **Concentric Rings** (`concentric-rings`): Layered rings respond to independent frequency bands. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=radial&mode=concentric-rings - **Mandala** (`mandala`): Symmetric path repetition forms evolving mandala geometry. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=radial&mode=mandala - **Sunburst** (`sunburst`): Frequency rays fan around protected central media. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=radial&mode=sunburst - **Orbit Halo** (`orbit-halo`): Multiple ellipses orbit on slow phase-separated paths. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=radial&mode=orbit-halo - **Logo Crown** (`logo-crown`): A responsive crown automatically clears a logo safe zone. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=radial&mode=logo-crown #### Controls (37) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#818cf8`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#c084fc`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#05040b`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `spectrumRange` — **Spectrum range** (Audio, range). Fraction of the frequency range the visual spans. The top of the FFT is near-silent air on most material, so at 1 the right-hand edge of every spectrum visual barely moves. Range 0.2–1. Default `0.86`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `thickness` — **Thickness** (Geometry, range). Thickness. Range 0.1–100. Default `2`; animatable, audio-bindable. - `symmetry` — **Symmetry** (Geometry, range). Repeated geometry symmetry. Range 1–64. Default `1`; animatable. - `twist` — **Twist** (Geometry, range). Twist. Range -12.566–12.566. Default `0`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `rotationSpeed` — **Rotation** (Motion, range). Slow global rotation for radial/tunnel/bloom structures. Range 0–2. Default `0`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `innerRadius` — **Inner radius** (Radial, range). Inner radius. Range 0–1. Default `0.22`; animatable, audio-bindable. - `outerRadius` — **Outer radius** (Radial, range). Outer radius. Range 0.01–2. Default `0.38`; animatable, audio-bindable. - `centerSafeZone` — **Logo safe zone** (Radial, range). Reserved center radius for logo/media. Range 0–0.9. Default `0.2`; animatable. - `ringCount` — **Ring count** (Radial, range). Number of concentric structures. Range 1–64. Default `8`; animatable. - `angularSweep` — **Angular sweep** (Radial, range). Angular sweep. Range 1–360. Default `360`; animatable, audio-bindable. - `radialDeformation` — **Radial deformation** (Radial, range). Radial deformation. Range 0–1. Default `0.3`; animatable, audio-bindable. --- ### Spectrum URL: https://visualizers.novusstreamsolutions.com/templates/spectrum · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/spectrum Stable id: `spectrum` · Engine version: 4.0.0 · Setup effort: easy Frequency-domain lines, areas, ribbons, spectrograms, ridges, and meshes. Focus: Linear, log, and mel-scaled spectral history with per-band palettes #### Modes (6) - **Line Spectrum** (`line-spectrum`) — default: A smooth log-frequency line with stable peak behavior. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=spectrum&mode=line-spectrum - **Mirrored Area** (`mirrored-area`): Filled frequency areas mirror across the baseline. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=spectrum&mode=mirrored-area - **Ribbon Surface** (`ribbon-surface`): Frequency bins project along a curved ribbon surface. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=spectrum&mode=ribbon-surface - **Spectrogram Waterfall** (`spectrogram-waterfall`): Spectral history flows through time without frame-rate coupling. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=spectrum&mode=spectrogram-waterfall - **Frequency Ridge** (`frequency-ridge`): A focused ridge emphasizes bounded band transitions. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=spectrum&mode=frequency-ridge - **Spectral Mesh** (`spectral-mesh`): Frequency history becomes an editable three-dimensional mesh. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=spectrum&mode=spectral-mesh #### Controls (34) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#8b5cf6`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#22d3ee`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#050510`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `spectrumRange` — **Spectrum range** (Audio, range). Fraction of the frequency range the visual spans. The top of the FFT is near-silent air on most material, so at 1 the right-hand edge of every spectrum visual barely moves. Range 0.2–1. Default `0.86`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `thickness` — **Thickness** (Geometry, range). Thickness. Range 0.1–100. Default `2`; animatable, audio-bindable. - `noiseDeformation` — **Noise deformation** (Geometry, range). Noise deformation. Range 0–1. Default `0`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `binCount` — **Bins** (Spectrum, range). Resampled visible bin count. Range 8–512. Default `96`; animatable. - `historyDepth` — **History** (Spectrum, range). Spectral history frames. Range 1–512. Default `64`; animatable. - `spectralSmoothing` — **Smoothing** (Spectrum, range). Smoothing. Range 0–0.95. Default `0.72`; animatable, audio-bindable. - `verticalAnchor` — **Vertical anchor** (Spectrum, select). Where the spectrum baseline sits in the frame. Options: Low, Bottom, Center. Default `bottom`. - `mirror` — **Mirror reflection** (Spectrum, boolean). Reflect the spectrum across its baseline (floor-reflection look). Default `false`. --- ### Bars URL: https://visualizers.novusstreamsolutions.com/templates/bars · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/bars Stable id: `bars` · Engine version: 4.0.0 · Setup effort: easy Dedicated equalizer bars with mirrors, stacks, paths, depth, and peak hold. Focus: Precision bar layout with independent materials and band mapping #### Modes (6) - **Linear Equalizer** (`linear-equalizer`) — default: A refined baseline equalizer with rounded caps. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bars&mode=linear-equalizer - **Center Mirror** (`center-mirror`): Bars expand symmetrically above and below center. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bars&mode=center-mirror - **Stacked Bands** (`stacked-bands`): Bass, mid, and treble materials stack per column. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bars&mode=stacked-bands - **Radial Bars** (`radial-bars`): Equalizer bars distribute around a central safe zone. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bars&mode=radial-bars - **3D Columns** (`3d-columns`): Beveled columns use lights and depth-aware materials. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bars&mode=3d-columns - **Piano/Step Grid** (`piano-step-grid`): Quantized frequency steps form a musical grid. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=bars&mode=piano-step-grid #### Controls (35) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#22d3ee`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#34d399`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#020809`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `spectrumRange` — **Spectrum range** (Audio, range). Fraction of the frequency range the visual spans. The top of the FFT is near-silent air on most material, so at 1 the right-hand edge of every spectrum visual barely moves. Range 0.2–1. Default `0.86`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `barCount` — **Bar count** (Bars, range). Visible bar count. Range 4–256. Default `64`; animatable. - `barWidth` — **Bar width** (Bars, range). Bar width. Range 0.05–1. Default `0.72`; animatable, audio-bindable. - `barGap` — **Bar gap** (Bars, range). Bar gap. Range 0–1. Default `0.18`; animatable, audio-bindable. - `heightScale` — **Bar height** (Bars, range). Fraction of the frame the tallest bar can reach. Range 0.2–1. Default `0.5`; animatable. - `reflection` — **Floor reflection** (Bars, range). Mirrored floor reflection below the bars. Range 0–1. Default `0`; animatable. - `capShape` — **Cap shape** (Bars, select). Cap shape. Options: Square, Round, Diamond, Pill. Default `round`. - `baseline` — **Baseline** (Bars, select). Baseline. Options: Bottom, Center, Top, Path. Default `bottom`. - `mirroring` — **Mirroring** (Bars, range). Mirror bars around the baseline. Range 0–1. Default `0`; animatable. - `stackCount` — **Stacks** (Bars, range). Vertical band stacks. Range 1–12. Default `1`; animatable. - `peakHoldMs` — **Peak hold** (Bars, range). Peak hold duration in milliseconds. Range 0–5000. Default `420`; animatable. - `bevelDepth` — **Bevel/depth** (Bars, range). Bevel/depth. Range 0–1. Default `0.08`; animatable, audio-bindable. --- ### Tunnel URL: https://visualizers.novusstreamsolutions.com/templates/tunnel · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/tunnel Stable id: `tunnel` · Engine version: 4.0.0 · Setup effort: medium Looping depth corridors, tubes, fields, and camera paths with deterministic fog. Focus: Editable cross-sections, surface audio deformation, twist, and camera motion #### Modes (6) - **Concentric Rings** (`concentric-rings`) — default: Evenly spaced ring segments move through a looping depth field. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=tunnel&mode=concentric-rings - **Corridor Grid** (`corridor-grid`): Walls and floor form a measured perspective corridor. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=tunnel&mode=corridor-grid - **Warp Field** (`warp-field`): A point field accelerates visually while velocity stays bounded. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=tunnel&mode=warp-field - **Spectrum Tube** (`spectrum-tube`): FFT bins deform a tube surface through bounded envelopes. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=tunnel&mode=spectrum-tube - **Waveform Tube** (`waveform-tube`): Time-domain samples travel along the tunnel cross-section. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=tunnel&mode=waveform-tube - **Particle Vortex** (`particle-vortex`): Particles spiral through a shared camera-space vortex. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=tunnel&mode=particle-vortex #### Controls (36) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#06b6d4`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#6366f1`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#02040a`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `spectrumRange` — **Spectrum range** (Audio, range). Fraction of the frequency range the visual spans. The top of the FFT is near-silent air on most material, so at 1 the right-hand edge of every spectrum visual barely moves. Range 0.2–1. Default `0.86`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryShape` — **Geometry** (Geometry, select). Geometry. Options: Circle, Ellipse, Line, Polygon, Star, Rounded Rectangle, Square, Triangle, Soft Glow. Default `circle`. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `twist` — **Twist** (Geometry, range). Twist. Range -12.566–12.566. Default `0`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `rotationSpeed` — **Rotation** (Motion, range). Slow global rotation for radial/tunnel/bloom structures. Range 0–2. Default `0`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `crossSection` — **Cross section** (Tunnel, select). Cross section. Options: Circle, Square, Hexagon, Grid, Tube, Custom Path. Default `circle`. - `segmentCount` — **Segments** (Tunnel, range). Visible depth segments. Range 8–128. Default `34`; animatable. - `depth` — **Depth** (Tunnel, range). Depth. Range 1–40. Default `14`; animatable, audio-bindable. - `fieldOfView` — **Field of view** (Tunnel, range). Field of view. Range 15–140. Default `58`; animatable, audio-bindable. - `fog` — **Fog** (Tunnel, range). Fog. Range 0–1. Default `0.36`; animatable, audio-bindable. - `cameraPath` — **Camera path** (Tunnel, range). Camera path. Range 0–1. Default `0.2`; animatable, audio-bindable. - `surfaceDeformation` — **Surface deformation** (Tunnel, range). Surface deformation. Range 0–1. Default `0.25`; animatable, audio-bindable. --- ### Waveform URL: https://visualizers.novusstreamsolutions.com/templates/waveform · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/waveform Stable id: `waveform` · Engine version: 4.0.0 · Setup effort: easy Time-domain lines, fills, ribbons, XY scopes, and historical surfaces. Focus: Stable sample windows, channel mixing, phase, depth, and surface history #### Modes (6) - **Line** (`line`) — default: A clean anti-aliased oscilloscope line. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=waveform&mode=line - **Mirrored** (`mirrored`): A symmetric waveform mirrors around its baseline. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=waveform&mode=mirrored - **Filled** (`filled`): A translucent waveform area holds a stable idle silhouette. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=waveform&mode=filled - **Ribbon** (`ribbon`): A dimensional waveform ribbon reacts to phase and depth. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=waveform&mode=ribbon - **Oscilloscope/Lissajous** (`oscilloscope-lissajous`): Stereo channels map to an XY oscilloscope path. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=waveform&mode=oscilloscope-lissajous - **3D Surface** (`3d-surface`): Waveform history forms a lit three-dimensional surface. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=waveform&mode=3d-surface #### Controls (33) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#14b8a6`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#67e8f9`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#030a0a`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `thickness` — **Thickness** (Geometry, range). Thickness. Range 0.1–100. Default `2`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `gain` — **Gain** (Waveform, range). Gain. Range 0–5. Default `1`; animatable, audio-bindable. - `waveSmoothing` — **Smoothing** (Waveform, range). Spatial smoothing across neighbouring samples. Range 0–0.95. Default `0.55`; animatable, audio-bindable. - `waveWindow` — **Wave window** (Waveform, range). How much of the previous frame's wave is carried into this one. Range 0–0.95. Default `0.55`; animatable, audio-bindable. - `phase` — **Phase** (Waveform, range). Phase. Range -6.283–6.283. Default `0`; animatable, audio-bindable. - `ribbonDepth` — **Ribbon depth** (Waveform, range). Ribbon depth. Range 0–2. Default `0.12`; animatable, audio-bindable. - `surfaceHistory` — **Surface history** (Waveform, range). 3D surface history lines. Range 2–256. Default `48`; animatable. --- ### Logo URL: https://visualizers.novusstreamsolutions.com/templates/logo · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/logo Stable id: `logo` · Engine version: 4.0.0 · Setup effort: medium Brand-first scenes: reactive geometry arranged around your artwork, never over it. Focus: Rings, halos, orbiting bars and auras that automatically clear a centred logo #### Modes (6) - **Waveform Ring** (`waveform-ring`) — default: The time-domain trace bent into a ring around your logo. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=logo&mode=waveform-ring - **Spectrum Halo** (`spectrum-halo`): Concentric arcs, each carrying its own frequency band. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=logo&mode=spectrum-halo - **Orbiting Bars** (`orbiting-bars`): A full equalizer ring orbiting the artwork. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=logo&mode=orbiting-bars - **Particle Aura** (`particle-aura`): A drifting particle halo that breathes with the mix. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=logo&mode=particle-aura - **Pulse Frame** (`pulse-frame`): A rectangular badge frame — built for square and vertical formats. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=logo&mode=pulse-frame - **Kinetic Reveal** (`kinetic-reveal`): Wedges light in turn so the mark assembles across a bar. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=logo&mode=kinetic-reveal #### Controls (37) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#fbbf24`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#fb7185`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#080608`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `spectrumRange` — **Spectrum range** (Audio, range). Fraction of the frequency range the visual spans. The top of the FFT is near-silent air on most material, so at 1 the right-hand edge of every spectrum visual barely moves. Range 0.2–1. Default `0.86`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryShape` — **Geometry** (Geometry, select). Geometry. Options: Circle, Ellipse, Line, Polygon, Star, Rounded Rectangle, Square, Triangle, Soft Glow. Default `circle`. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `thickness` — **Thickness** (Geometry, range). Thickness. Range 0.1–100. Default `2`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `rotationSpeed` — **Rotation** (Motion, range). Slow global rotation for radial/tunnel/bloom structures. Range 0–2. Default `0`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `logoImage` — **Logo image** (Logo, text). Image URL or data URL composited at the centre. Uploading in the editor writes this key. Default ``. - `logoScale` — **Logo size** (Logo, range). Artwork size as a fraction of the frame. Range 0.02–0.6. Default `0.22`; animatable. - `logoOpacity` — **Logo opacity** (Logo, range). Artwork opacity. Range 0–1. Default `1`; animatable. - `centerSafeZone` — **Clearance** (Logo, range). Extra space kept clear around the artwork. Range 0–0.9. Default `0.18`; animatable. - `ringCount` — **Rings** (Logo, range). Concentric elements around the artwork. Range 1–24. Default `4`; animatable. - `barCount` — **Bars** (Logo, range). Orbiting bar count. Range 8–180. Default `56`; animatable. - `gain` — **Waveform gain** (Logo, range). Waveform gain. Range 0–5. Default `1.6`; animatable, audio-bindable. --- ### Lattice URL: https://visualizers.novusstreamsolutions.com/templates/lattice · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/lattice Stable id: `lattice` · Engine version: 4.0.0 · Setup effort: medium Mirrors, tilings, wireframes and trusses: hard-edged geometry that switches on the beat. Focus: Kaleidoscopes, tessellations, wireframe solids, isometric grids, and expanding prisms #### Modes (6) - **Kaleidoscope** (`kaleidoscope`) — default: A mirrored wedge repeats around the frame, its profile cut from the spectrum. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=lattice&mode=kaleidoscope - **Tessellation** (`tessellation`): A still hex tiling that beats light in travelling stripes. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=lattice&mode=tessellation - **Wire Polyhedron** (`wire-polyhedron`): A rotating wireframe solid whose vertices ride their own bands. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=lattice&mode=wire-polyhedron - **Isometric Grid** (`isometric-grid`): An isometric block field where every column is a frequency. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=lattice&mode=isometric-grid - **Truss Web** (`truss-web`): Node rings wired to their neighbours; struts carry current on the beat. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=lattice&mode=truss-web - **Prism Stack** (`prism-stack`): One polygon is born per beat and travels outward carrying that hit. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=lattice&mode=prism-stack #### Controls (38) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#38bdf8`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#e2e8f0`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#04060b`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `spectrumRange` — **Spectrum range** (Audio, range). Fraction of the frequency range the visual spans. The top of the FFT is near-silent air on most material, so at 1 the right-hand edge of every spectrum visual barely moves. Range 0.2–1. Default `0.86`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryShape` — **Geometry** (Geometry, select). Geometry. Options: Circle, Ellipse, Line, Polygon, Star, Rounded Rectangle, Square, Triangle, Soft Glow. Default `circle`. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `thickness` — **Thickness** (Geometry, range). Thickness. Range 0.1–100. Default `2`; animatable, audio-bindable. - `symmetry` — **Symmetry** (Geometry, range). Repeated geometry symmetry. Range 1–64. Default `1`; animatable. - `twist` — **Twist** (Geometry, range). Twist. Range -12.566–12.566. Default `0`; animatable, audio-bindable. - `noiseDeformation` — **Noise deformation** (Geometry, range). Noise deformation. Range 0–1. Default `0`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `rotationSpeed` — **Rotation** (Motion, range). Slow global rotation for radial/tunnel/bloom structures. Range 0–2. Default `0`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `latticeSides` — **Polygon sides** (Lattice, range). Edges per tile, prism, and truss ring. Range 3–16. Default `6`; animatable. - `cellCount` — **Grid density** (Lattice, range). Tiles across the frame, or rings in the truss. Range 2–48. Default `12`; animatable. - `nodeCount` — **Nodes** (Lattice, range). Wireframe vertex count. Range 8–400. Default `64`; animatable. - `cellFill` — **Cell fill** (Lattice, range). How solid a lit cell reads against its outline. Range 0–1. Default `0.28`; animatable, audio-bindable. - `latticeJitter` — **Jitter** (Lattice, range). Beat-quantized irregularity in the lattice, so the grid breathes. Range 0–1. Default `0.18`; animatable, audio-bindable. --- ### Terrain URL: https://visualizers.novusstreamsolutions.com/templates/terrain · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/terrain Stable id: `terrain` · Engine version: 4.0.0 · Setup effort: medium The last few seconds of the track rendered as receding landscape. Focus: Ridge lines, contour maps, canyons, dunes, wire meshes, and silhouettes #### Modes (6) - **Ridge Lines** (`ridge-lines`) — default: Stacked hidden-line ridges recede toward the horizon. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=terrain&mode=ridge-lines - **Wire Mesh** (`wire-mesh`): Rows and columns cross into a see-through heightfield. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=terrain&mode=wire-mesh - **Contour Map** (`contour-map`): Filled elevation bands read as a topographic plate. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=terrain&mode=contour-map - **Canyon Scroll** (`canyon-scroll`): The field mirrors above and below a travelling corridor. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=terrain&mode=canyon-scroll - **Dune Field** (`dune-field`): Wide soft forms for lyric and ambient backgrounds. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=terrain&mode=dune-field - **Peak Silhouette** (`peak-silhouette`): Layered silhouettes against a sky that lights on the beat. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=terrain&mode=peak-silhouette #### Controls (34) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#34d399`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#94a3b8`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#03070a`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `spectrumRange` — **Spectrum range** (Audio, range). Fraction of the frequency range the visual spans. The top of the FFT is near-silent air on most material, so at 1 the right-hand edge of every spectrum visual barely moves. Range 0.2–1. Default `0.86`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `thickness` — **Thickness** (Geometry, range). Thickness. Range 0.1–100. Default `2`; animatable, audio-bindable. - `noiseDeformation` — **Noise deformation** (Geometry, range). Noise deformation. Range 0–1. Default `0`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `relief` — **Relief** (Terrain, range). Vertical exaggeration of the landscape. Range 0–1. Default `0.55`; animatable, audio-bindable. - `horizon` — **Horizon** (Terrain, range). Where the furthest row sits in the frame. Range 0.05–0.9. Default `0.32`; animatable. - `rowSpacing` — **Perspective** (Terrain, range). How hard rows bunch and narrow toward the horizon. Range 0.05–1. Default `0.55`; animatable. - `roughness` — **Roughness** (Terrain, range). Smooth rolling hills at 0, sharp ridged peaks at 1. Range 0–1. Default `0.35`; animatable, audio-bindable. - `historyDepth` — **History** (Terrain, range). Rows of track history kept on screen. Range 4–128. Default `64`; animatable. --- ### Stage Lights URL: https://visualizers.novusstreamsolutions.com/templates/stage · Reference: https://visualizers.novusstreamsolutions.com/help/visualizers/stage Stable id: `stage` · Engine version: 4.0.0 · Setup effort: easy A lighting rig rather than a readout: beams, haze, pools and chases cued by the beat. Focus: Beam fans, lasers, spot rigs, par walls, battens, and follow spots #### Modes (6) - **Beam Fan** (`beam-fan`) — default: One rig position throwing a fan of beams across the stage. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=stage&mode=beam-fan - **Laser Sweep** (`laser-sweep`): Side rigs fire thin lasers that sweep across the frame. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=stage&mode=laser-sweep - **Spot Rig** (`spot-rig`): Fixtures hung along a truss, each with a cone and a floor pool. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=stage&mode=spot-rig - **Par Wall** (`par-wall`): A back wall of par cans chasing group by group. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=stage&mode=par-wall - **Strobe Bars** (`strobe-bars`): Horizontal battens pulsing in sequence — bounded bars, never a full-frame flash. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=stage&mode=strobe-bars - **Follow Spot** (`follow-spot`): A single fixture tracking a target that only moves on the beat. Open it at https://visualizers.novusstreamsolutions.com/editor?engine=stage&mode=follow-spot #### Controls (35) - `primaryColor` — **Primary color** (Style, color). Primary color used by the engine palette. Default `#fcd34d`; animatable. - `secondaryColor` — **Secondary color** (Style, color). Secondary color used by the engine palette. Default `#e879f9`; animatable. - `backgroundColor` — **Background** (Style, color). Background used by the engine palette. Default `#040308`; animatable. - `opacity` — **Opacity** (Transform, range). Visualizer opacity. Range 0–1. Default `1`; animatable. - `frameMargin` — **Frame margin** (Transform, range). Breathing room kept clear at the frame edges. Audio-driven geometry is soft-limited to fit inside it; geometry scale deliberately is not. Range 0–0.25. Default `0.035`; animatable. - `sensitivity` — **Sensitivity** (Audio, range). Bounded overall audio response. Range 0–3. Default `1`; animatable. - `spectrumRange` — **Spectrum range** (Audio, range). Fraction of the frequency range the visual spans. The top of the FFT is near-silent air on most material, so at 1 the right-hand edge of every spectrum visual barely moves. Range 0.2–1. Default `0.86`; animatable. - `audioSource` — **Primary audio source** (Audio, select). Primary audio source. Options: Bass, LowMid, Mid, HighMid, Treble, Rms, Peak, Onset, Beat, Bpm Phase. Default `bass`. - `audioAmount` — **Audio contribution** (Audio, range). Maximum contribution from the primary audio route. Range 0–1. Default `0.55`; animatable. - `audioDynamics` — **Audio dynamics** (Audio, range). How much of the band's movement reaches the visual. 1 = full dynamics; 0 holds it at a steady level for a calmer, more constant look. Range 0–1. Default `1`; animatable. - `audioAttackMs` — **Audio attack** (Audio, range). Envelope attack in milliseconds. Range 0–2000. Default `45`; animatable. - `audioReleaseMs` — **Audio release** (Audio, range). Envelope release in milliseconds. Range 0–5000. Default `240`; animatable. - `geometryScale` — **Geometry scale** (Geometry, range). Geometry scale. Range 0.05–8. Default `1`; animatable, audio-bindable. - `thickness` — **Thickness** (Geometry, range). Thickness. Range 0.1–100. Default `2`; animatable, audio-bindable. - `speed` — **Speed** (Motion, range). Time-based motion; default major cycle is 6–12 seconds. Range 0–2. Default `0.1`; animatable, audio-bindable. - `rotationSpeed` — **Rotation** (Motion, range). Slow global rotation for radial/tunnel/bloom structures. Range 0–2. Default `0`; animatable, audio-bindable. - `colorMode` — **Color mode** (Style, select). Duo palette, primary→secondary gradient, or full rainbow sweep. Options: Duo, Gradient, Spectrum. Default `duo`. - `glow` — **Glow** (Effects, range). Glow. Range 0–2. Default `0.55`; animatable, audio-bindable. - `globalGlow` — **Global glow** (Effects, range). Shared emissive strength across the frame. Range 0–2. Default `0.35`; animatable, audio-bindable. - `pulseIntensity` — **Pulse intensity** (Effects, range). Beat pulse scale for spawn, size, and shake. Range 0–2. Default `1`; animatable, audio-bindable. - `beatResponse` — **Beat response** (Audio, range). How hard every engine hits on each detected beat. Range 0–2. Default `1.2`; animatable, audio-bindable. - `beatSmoothing` — **Beat smoothing** (Audio, range). How long each beat hit rings out before it settles. Range 0–0.9. Default `0.35`; animatable, audio-bindable. - `beatAttack` — **Beat attack** (Audio, range). Seconds for a hit to swell to full. 0 snaps instantly. Range 0–0.5. Default `0`; animatable, audio-bindable. - `beatRelease` — **Beat release** (Audio, range). Seconds for a hit to fade, overriding Beat smoothing. 0 follows it. Range 0–1.5. Default `0`; animatable, audio-bindable. - `shakeAmount` — **Beat shake** (Effects, range). Frame kick strength on each beat. Range 0–2. Default `0.6`; animatable, audio-bindable. - `feedback` — **Motion echo** (Effects, range). Motion echo. Range 0–0.97. Default `0`; animatable, audio-bindable. - `blur` — **Blur** (Effects, range). Blur. Range 0–40. Default `0`; animatable, audio-bindable. - `chromaticAberration` — **Chromatic aberration** (Effects, range). Chromatic aberration. Range 0–1. Default `0`; animatable, audio-bindable. - `beatSyncAll` — **Beat sync all** (Audio, boolean). Route beat energy into spawn, shake, pulse, speed, and scale. Default `true`. - `fixtureCount` — **Fixtures** (Rig, range). Lamps on the rig. Range 1–64. Default `12`; animatable. - `beamSpread` — **Beam spread** (Rig, range). Cone angle of each beam. Range 0.002–0.35. Default `0.035`; animatable, audio-bindable. - `beamArc` — **Rig arc** (Rig, range). How wide the fan throws across the stage. Range 0.05–1. Default `0.62`; animatable, audio-bindable. - `haze` — **Haze** (Rig, range). Atmospheric haze — what makes a beam visible in the air. Range 0–1. Default `0.35`; animatable, audio-bindable. - `fixtureDecay` — **Fixture decay** (Rig, range). Seconds a struck lamp takes to fall back. Range 0.04–2. Default `0.34`; animatable. - `chaseGroups` — **Chase groups** (Rig, range). Beats it takes the chase to work around the rig. Range 1–12. Default `4`; animatable. --- ## Help articles ### Create your first visualizer URL: https://visualizers.novusstreamsolutions.com/help/first-visualizer Choose an engine, attach audio, tune a mode, and export from Classic or Studio. #### Start with a canonical engine Open Templates and choose from Particles, Trails, Bloom, Character Motion, Radial, Spectrum, Bars, Tunnel, Waveform, Logo, Lattice, Terrain and Stage Lights. A mode changes the engine configuration without creating a separate template. - Use in Classic for the guided workflow. - Open in Studio for layers, nodes, timeline, geometry, and rigs. - Preview and export use the same fixed-step renderer. #### Audio and beat grid Attach audio, run detection, then correct BPM, time signature, grid offset, or individual markers. Bind controls through bounded mappings rather than raw FFT values. #### Save or export Guests can export locally or download a `.novusvis` document. Sign in to save revisions in Turso and optionally upload audio privately. --- ### Classic and Studio URL: https://visualizers.novusstreamsolutions.com/help/classic-and-studio Understand the two editors and move between them without serialization loss. #### Classic Classic renders the same control schemas as Studio in a focused workflow for audio, engine mode, geometry, direction, color, captions, logos, overlays, beat effects, trim, recommendations, and export. #### Studio Studio exposes the normalized layer tree, node graph, timeline, inspector, asset browser, direct canvas manipulation, and character rig workspace on desktop, tablet, and phone. #### Round trips Both editors edit one `NovusComposition`. Classic preserves graph and timeline data it does not expose, so opening a document in either editor does not flatten it. The shared graph evaluator runs live in Studio preview and Classic playback, so LFO, math, envelope, remap, merge, and effect nodes change the image in both editors. --- ### Account security and recovery URL: https://visualizers.novusstreamsolutions.com/help/account-security Username/password accounts, passkeys, recovery codes, and active sessions without email. #### Why sign in Guest editing and export stay free. Signing in adds durable Turso revisions, private assets, cross-device access, profiles, community, and notifications. #### Recovery Novus sends no email. Save the recovery codes shown at signup and add a passkey. Codes are hashed, single-use, and replaced as a complete set. - Use a passkey or username plus an unused recovery code at `/recover`. - Recovery creates a short-lived HttpOnly session and never returns a reset token in JSON. - Without a passkey, recovery code, or authenticated trusted session, the account cannot be self-recovered. #### Sessions and admins Security settings list active devices without exposing session tokens. Admins use the normal account session; privileged changes require a fresh passkey and create an immutable audit record. --- ### Saving projects and assets URL: https://visualizers.novusstreamsolutions.com/help/saving-projects Autosave states, conflicts, revisions, local import, and optional private audio uploads. #### Autosave Signed-in edits are debounced and flushed on explicit save and visibility changes. The editor reports saving, saved, offline, conflict, or failed. Revision tokens prevent another device from being silently overwritten. #### Guest work Guests have no durable browser library. Save opens authentication and claims the current in-memory document. Export `.novusvis` before leaving if you do not want to sign in. #### Private assets Uploads use short-lived scoped tokens, checksums, magic-byte/decode validation, and quarantine. Choose once per project whether audio is included in cloud saving. If not, another device requests the matching file by fingerprint. --- ### Publishing and community URL: https://visualizers.novusstreamsolutions.com/help/community Private-by-default projects, immutable posts, remix attribution, reports, and moderation. #### Publish explicitly A project stays private until you publish. Publication freezes one revision and generates or accepts a separately validated public preview. Later private edits do not change the post. #### Interact safely Like, save, follow, comment, remix with attribution, block, or report. Reports can target posts, comments, profiles, and assets. Moderation decisions arrive in the notification inbox. #### Remixes A remix is a private copy of the published engine, geometry, graph, and timeline. Private source audio and media are removed; attach your own assets. The source attribution reconnects when publishing. --- ### Preview and browser export URL: https://visualizers.novusstreamsolutions.com/help/exporting Deterministic local export, formats, audio, captions, alpha, and device capability limits. #### Parity Live preview, still capture, and video export use the same composition graph, fixed-step clock, and audio-frame contract. Identical timestamps and seeds produce equivalent frames within the renderer tolerance. #### Capability limits Novus encodes with WebCodecs where the browser provides it and falls back to the browser's own MediaRecorder, which produces WebM. There is no FFmpeg or WASM transcode: that route was removed because it could never load behind this site's Content Security Policy and its encoder core is GPL licensed. Supported desktop hardware may export up to 4K. Constrained phones are limited to 1080p to avoid failed or corrupted exports. #### Local rendering Rendering remains on your device; there is no cloud-render queue. Audio inclusion, trims, captions, platform dimensions, frame rate, and alpha support depend on the selected format. --- ## Glossary ### Audio analysis What the analyser measures in your track, and what the numbers mean. **Bass, mid and treble bands** (https://visualizers.novusstreamsolutions.com/glossary#frequency-bands) Groups of neighbouring frequency bins summarised into a single number each, so a control can be driven by “how much bass is happening” instead of by hundreds of individual bins. In Novus: Any audio-bindable control can be routed to a band; the bands are the same ones the export path computes, so a binding behaves identically in preview and in the rendered file. **FFT (Fast Fourier Transform)** (https://visualizers.novusstreamsolutions.com/glossary#fft) The calculation that turns a slice of audio into a list of how much energy sits at each frequency. Every bar, ring and ridge you see reacting to pitch rather than loudness is reading an FFT. In Novus: Run once per rendered frame against the current audio window; the result is the frame's frequency bins. **Frequency bin** (https://visualizers.novusstreamsolutions.com/glossary#frequency-bin) One slot in the FFT result, covering a narrow span of frequencies. More bins means finer pitch detail and a busier picture; fewer means a smoother, calmer shape. In Novus: Exposed as a bar or bin count on the engines that draw the spectrum directly. Controls: `binCount`, `barCount` **Gain** (https://visualizers.novusstreamsolutions.com/glossary#gain) A multiplier applied to the audio signal before anything draws it. Turning gain up makes a quiet track drive the visuals as hard as a loud one — it changes the picture, not the exported audio. Controls: `gain` **Mel scale** (https://visualizers.novusstreamsolutions.com/glossary#mel-scale) A way of spacing frequency bins that matches how human hearing works: fine detail low down, coarser detail high up. A mel-scaled spectrum looks more like the music sounds than a linear one does. **Oscilloscope / Lissajous** (https://visualizers.novusstreamsolutions.com/glossary#oscilloscope) A waveform drawn as a line on an XY plane instead of left-to-right. Feed the left channel to X and the right to Y and the shape tells you about the stereo image: a diagonal line is mono, a circle is wide. **Peak** (https://visualizers.novusstreamsolutions.com/glossary#peak) The single loudest sample in the current window. Unlike RMS it reacts to one sharp hit, which makes it useful for flashes and useless for anything you want to stay steady. **Peak hold** (https://visualizers.novusstreamsolutions.com/glossary#peak-hold) A marker that jumps instantly to a bar's highest recent value and then falls back slowly. It is what makes an equalizer readable: the bars move too fast to follow, the caps do not. Controls: `peakHoldMs` **RMS** (https://visualizers.novusstreamsolutions.com/glossary#rms) Root mean square — the average loudness of the current audio window. It moves smoothly and is the right signal for size, brightness or drift; it is a poor signal for anything that should snap. **Spectral smoothing** (https://visualizers.novusstreamsolutions.com/glossary#spectral-smoothing) How much each frame's spectrum is blended with the frames before it. High smoothing gives a calm, flowing shape that lags the music slightly; low smoothing is twitchy and immediate. Controls: `spectralSmoothing` **Spectrogram** (https://visualizers.novusstreamsolutions.com/glossary#spectrogram) A picture of frequency over time: one axis is pitch, the other is history, and brightness is energy. Scroll it and the last few seconds of the track become a landscape. In Novus: Engines that keep spectral history expose how many past frames to hold. Controls: `historyDepth` **Transient** (https://visualizers.novusstreamsolutions.com/glossary#transient) The very short, very loud start of a sound — a stick hitting a snare, a pick hitting a string. Transients are what make a mix feel percussive, and they are what onset detection looks for. **Waveform vs spectrum** (https://visualizers.novusstreamsolutions.com/glossary#waveform-vs-spectrum) A waveform draws the audio signal itself — amplitude against time, the shape you see in an audio editor. A spectrum draws the FFT of that signal — energy against pitch. They are two different views of the same second of music, and picking the wrong one is the most common reason a visualizer “doesn't react”. In Novus: Both are first-class engines rather than modes of one another. ### Beat and timing How Novus decides when a beat happened and what reacts to it. **Audio amount** (https://visualizers.novusstreamsolutions.com/glossary#audio-amount) How far the audio is allowed to push a control away from its base value. At zero the control holds still; at one the music has full authority. It is the difference between a visualizer that reacts and one that thrashes. Controls: `audioAmount` **Audio binding** (https://visualizers.novusstreamsolutions.com/glossary#audio-binding) A bounded route from an audio signal to a control: pick a source, pick a range, and the control moves inside that range only. Bounded is the important word — a raw FFT value wired straight into a size is how visualizers blow up on a loud chorus. In Novus: Any control marked audio-bindable in the engine reference can take one. **Beat** (https://visualizers.novusstreamsolutions.com/glossary#beat) A musically meaningful pulse — the thing you would tap along to. Not every onset is a beat, which is why Novus tracks them separately: onsets are what happened, beats are what counts. In Novus: Every engine mode is required to respond visibly to the beat latch; a mode that ignores it fails the render registry test. **Beat grid** (https://visualizers.novusstreamsolutions.com/glossary#beat-grid) The editable map of where the beats are: tempo, time signature, an offset for the first downbeat, and any individual markers you have moved. Detection proposes it; you own it. In Novus: Corrections to the grid are stored in the composition, so the grid you fixed is the grid the export uses. **Beat latch** (https://visualizers.novusstreamsolutions.com/glossary#beat-latch) The internal signal that goes to full on a detected beat and then falls back on its own. It is what lets a shape punch on the kick without the renderer needing to know anything about tempo. Controls: `beatSyncAll`, `beatAttack`, `beatRelease`, `beatSmoothing` **BPM** (https://visualizers.novusstreamsolutions.com/glossary#bpm) Beats per minute — the tempo. Detection estimates it from the spacing of detected beats, and you can correct the estimate by hand when a track's intro fools it. **BPM phase** (https://visualizers.novusstreamsolutions.com/glossary#bpm-phase) Where you are between one beat and the next, as a number from 0 to 1. Binding to phase rather than to the beat itself gives you smooth motion that stays locked to tempo — a rotation that completes exactly one turn per bar, for example. **Envelope (attack and release)** (https://visualizers.novusstreamsolutions.com/glossary#envelope) The shape of a reaction over time: attack is how fast it rises, release is how slowly it falls. A short attack with a long release is a punch that lingers; long attack and short release is a swell that snaps off. In Novus: The beat smoothing control sets both time constants together, so one slider takes you from a hard strobe to a gentle breath. Controls: `beatAttack`, `beatRelease`, `beatSmoothing` **LFO** (https://visualizers.novusstreamsolutions.com/glossary#lfo) A low-frequency oscillator — a slow, repeating wave used as a source of motion rather than as sound. Route one into a control and it sways on its own whether or not the music is doing anything. In Novus: An LFO node in the Studio graph, evaluated by the same graph evaluator that runs during Classic playback. **Onset** (https://visualizers.novusstreamsolutions.com/glossary#onset) The moment a new sound starts. Onset detection watches for a sudden rise in energy and reports it as an instant, which is why it fires on hi-hats and guitar stabs as well as on kicks. ### Composition The document model both editors read and write. **Composition** (https://visualizers.novusstreamsolutions.com/glossary#composition) The document. One versioned file holding the layer tree, the node graph, the timeline, the beat grid and every control value, which both editors read and write. Opening a document in the other editor does not flatten what that editor cannot show. In Novus: Exported and imported as a .novusvis file; guests can download one without an account. **Engine** (https://visualizers.novusstreamsolutions.com/glossary#engine) A renderer with a published control schema and a stable id — the unit Novus builds visualizers out of. Engines are not presets: changing an engine's controls reshapes it rather than picking a different template. In Novus: Every engine's full control table is published on its reference page. **Engine version and migration** (https://visualizers.novusstreamsolutions.com/glossary#engine-version) Each engine's control schema carries a version. When a schema changes, a migration rewrites older documents into the new shape rather than dropping the values it no longer recognises. **Global vs layer scope** (https://visualizers.novusstreamsolutions.com/glossary#global-vs-layer) Some settings belong to the whole composition — resolution, the beat grid, the master clock — and some belong to one layer. Changing a global setting moves everything; changing a layer setting moves one thing. **Keyframe** (https://visualizers.novusstreamsolutions.com/glossary#keyframe) A control value pinned to a specific time. Between two keyframes the value is interpolated, which gives you scripted motion the music cannot override. **Layer** (https://visualizers.novusstreamsolutions.com/glossary#layer) One stacked element of the composition — an engine instance, an image, a caption, a logo. Layers composite in order, and each carries its own controls and its own audio routing. **Mode** (https://visualizers.novusstreamsolutions.com/glossary#mode) A named starting configuration of one engine — a set of control values with a title, not a separate renderer. Switching mode changes numbers; switching engine changes the code that draws. **Node graph** (https://visualizers.novusstreamsolutions.com/glossary#node-graph) The wiring diagram behind a composition: audio sources, maths, envelopes, remaps and merges, connected into the controls they drive. It is optional — a composition with no graph is a valid composition. In Novus: Edited in Studio, but evaluated in both editors, so a graph you built in Studio still animates during Classic playback. **Preset** (https://visualizers.novusstreamsolutions.com/glossary#preset) Any saved set of control values. A mode is a preset the catalogue ships; anything you save yourself is a preset too, and both are just values over the same schema. **Safe zone** (https://visualizers.novusstreamsolutions.com/glossary#safe-zone) A protected region of the frame that generated geometry must leave alone — usually the centre, so a logo or a face is never drawn over. Controls: `centerSafeZone`, `logoScale` **Seed** (https://visualizers.novusstreamsolutions.com/glossary#seed) The number that starts every random decision an engine makes. Same seed, same audio, same picture — which is what makes a preview worth trusting as a prediction of the export. **Timeline** (https://visualizers.novusstreamsolutions.com/glossary#timeline) The time axis of the composition: trims, sections, keyframes and markers. It is the same clock the export walks, so what you scrub is what you render. ### Rendering and export What happens between the canvas and the file you upload. **Alpha channel** (https://visualizers.novusstreamsolutions.com/glossary#alpha-channel) Per-pixel transparency, so a visualizer can be laid over other footage with no black box around it. Only some export formats can carry it — choosing a format without alpha is the usual reason a transparent export arrives opaque. **Aspect ratio** (https://visualizers.novusstreamsolutions.com/glossary#aspect-ratio) The shape of the frame — 16:9 for landscape video, 9:16 for vertical, 1:1 for square. Engines lay themselves out from the frame's shape, so switching ratio re-composes rather than crops. **Bitrate** (https://visualizers.novusstreamsolutions.com/glossary#bitrate) How many bits per second the encoder is allowed to spend. Too low and fast motion smears into blocks; past a point, more bitrate only makes the upload slower. **Codec vs container** (https://visualizers.novusstreamsolutions.com/glossary#codec-container) The codec is how the pictures are compressed; the container is the file that holds the compressed video, the audio and the metadata together. MP4 and WebM are containers, not codecs, which is why two MP4 files can behave completely differently. **Deterministic export** (https://visualizers.novusstreamsolutions.com/glossary#deterministic-export) The guarantee that the same composition, audio and seed produce equivalent frames every time, in preview and in the rendered file alike. It is why the preview is a preview and not an approximation. In Novus: Preview, still capture and video export share one clock, one audio-frame contract and one set of engine configs. **Fixed-step clock** (https://visualizers.novusstreamsolutions.com/glossary#fixed-step-clock) Advancing the animation by a constant amount per frame rather than by however long the last frame actually took. Without it, a slow machine renders a slower-looking video — the same project would export differently on a different laptop. **Frame rate** (https://visualizers.novusstreamsolutions.com/glossary#frame-rate) How many images per second the export contains. Higher is smoother and larger; 30 is fine for most uploads and 60 is worth it for fast motion. **Overlay** (https://visualizers.novusstreamsolutions.com/glossary#overlay) A visualizer meant to sit on top of something else — a stream, a gameplay capture, a talking head — rather than to fill the frame on its own. Overlays want transparency and a quiet centre. **Render load** (https://visualizers.novusstreamsolutions.com/glossary#render-load) How hard an engine works your device, summarised from its GPU cost and the number of elements it draws by default. Heavy engines are not better ones — they are the ones to check on a phone before you rely on them. In Novus: Shown on every engine card and on the engine reference page, derived from the same budget numbers the runtime enforces. **Spectrum (as a picture)** (https://visualizers.novusstreamsolutions.com/glossary#spectrum) Any drawing whose horizontal axis is pitch and whose height is energy — bars, a filled area, a ridge, a scrolling waterfall. All of them are the same FFT drawn differently. --- ## Tutorials ### Make Your First Music Visualizer URL: https://visualizers.novusstreamsolutions.com/tutorials/make-your-first-visualizer Difficulty: Beginner · Time: 5 min · Updated: 2026-07-16 The five-minute path from a song to a finished, watermark-free video — open the editor, pick a template, load your track, and export. **Before you start** - An audio file (MP3, WAV, OGG or M4A). No track handy? Grab one from the [Audio Library](https://visualizers.novusstreamsolutions.com/audio-library). - A desktop browser — Chrome or Edge give you the fastest, highest-quality export. This is the fastest route from a track to a finished visualizer video. Everything runs in your browser — your audio never leaves your device, there is no account, and the export has no watermark. Follow the five steps below and you will have an MP4 in about five minutes. > **In a hurry?** > The [Quick Start](https://visualizers.novusstreamsolutions.com/quick-setup) flow picks sensible defaults for a specific platform and drops you straight into the editor. This tutorial takes the slightly longer manual path so you learn where each control lives. #### Step 1: Pick a template Open the [Templates gallery](https://visualizers.novusstreamsolutions.com/templates). Every engine is a card with a live animated preview. Click a card to open its detail page, where you can compare the engine's **six modes** against a live preview, then hit **Use in Classic** to open it in the editor. > **Not sure which style fits?** > Our blog post [Choosing the Right Visualizer Engine for Your Genre](https://visualizers.novusstreamsolutions.com/blog/choosing-the-right-visualizer-for-your-genre) matches styles to music, and the [engine picking](https://visualizers.novusstreamsolutions.com/tutorials/pick-and-switch-engine-dimensions) tutorial walks all 13 engines and their modes. #### Step 2: Load your audio In the editor, find the **Audio File** panel and drag your track onto the drop zone (or click **Select File**). Novus accepts MP3, WAV, OGG and M4A up to 200 MB, and processes everything locally. The moment audio loads, the editor auto-wires the engine's reactivity — low frequencies drive impact, mids drive structure, highs drive sparkle — so the visuals start moving with the music immediately. - Press play and watch a verse and a chorus so you know how the scene reacts. - Feed it the best audio you have — a WAV or high-bitrate MP3 gives cleaner motion than a muddy low-bitrate file. - Your upload is saved locally, so it survives a page reload without re-uploading. #### Step 3: Make one change You do not need to touch everything. For a first video, open **Theme & Colors** and click one of the nine palette presets (Neon, Sunset, Ocean, Midnight, Forest, Gold, Plasma, Rose, Arctic) — it recolors the whole scene in one click. That single change already makes the visualizer feel like yours. Full customization is covered in [Recolor Your Visualizer](https://visualizers.novusstreamsolutions.com/tutorials/recolor-with-themes-and-settings). #### Step 4: Set your frame and export Open **Export Settings**. Pick a **Shape** for where the video is going — 16:9 for YouTube, 9:16 for Shorts/Reels/TikTok — and a **Quality** tier (1080p is the fast, reliable default). Leave **Export full song duration** checked, then press **Export**. A review dialog summarizes your settings; confirm it and the render runs on your machine. *Figure: Diagram of 16:9, 9:16 and 1:1 export shapes — Match the Shape to the destination before exporting — 16:9 for YouTube, 9:16 for vertical, 1:1 for feed.* #### Step 5: Done — it is yours The finished MP4 downloads automatically, watermark-free and yours to publish anywhere. That is the whole loop. From here, the [editor tour](https://visualizers.novusstreamsolutions.com/tutorials/editor-tour) shows you every panel, and the [Make a YouTube Music Visualizer](https://visualizers.novusstreamsolutions.com/tutorials/youtube-music-visualizer) tutorial walks the full end-to-end workflow with text, logo and platform-ready export settings. --- ### A Guided Tour of the Editor URL: https://visualizers.novusstreamsolutions.com/tutorials/editor-tour Difficulty: Beginner · Time: 6 min · Updated: 2026-07-16 What every panel in the Novus editor does — audio, reactivity, engine parameters, colors, text, assets, layers and export — so nothing feels like a mystery. **Before you start** - A template open in the [editor](https://visualizers.novusstreamsolutions.com/editor) so you can follow along. The editor packs a lot into one screen. The good news: it is organized into collapsible sections, and you only ever need a handful for any given video. Here is what each one is for, roughly top to bottom. #### Audio File Where you load your track (drag-and-drop or **Select File**, up to 200 MB). It also holds a collapsible **Audio Library** section so you can swap in a copyright-free song without leaving your project. Loading audio auto-connects the engine's frequency reactivity. #### Visualizer Controls (Audio Reaction Style) Open by default. This is the *how it moves* panel: **Frequency Focus**, the **Reactivity** slider, Pulse/Burst intensity, and the beat-driven **Frame motion** group. Small changes here dramatically change the feel — the [Tune Audio Reactivity](https://visualizers.novusstreamsolutions.com/tutorials/tune-audio-reactivity) tutorial is dedicated to it. #### Engine Parameters The sliders specific to your current engine — color pickers, speed, density, and a **Sensitivity** control on most engines. Every engine exposes a different set here, which is what makes each family distinct. #### Theme & Colors Nine one-click palette presets (Neon, Sunset, Ocean, Midnight, Forest, Gold, Plasma, Rose, Arctic) that push a coordinated color scheme across the entire scene. The quickest way to restyle a template. Covered in depth in [Recolor Your Visualizer](https://visualizers.novusstreamsolutions.com/tutorials/recolor-with-themes-and-settings). #### Text Overlay & Visual Assets **Text Overlay** holds your Song Title, Artist Name and an optional Tagline, with size and position controls. **Visual Assets** handles image uploads — Background, Logo (top-right by default), Underlay and Overlay, each with blend mode and opacity. Uploading into a slot switches its layer on automatically. Branding is covered in [Add Titles, Artist Text & a Logo](https://visualizers.novusstreamsolutions.com/tutorials/add-titles-artist-text-and-logo). *Figure: Diagram of editor layers: background, visualizer, and text/branding on top — The scene is a stack: background at the bottom, the engine in the middle, text and branding on top.* #### Feature Toggles Your layer switchboard: one-click On/Off for Background Image, Logo, Overlay Image, Song Title Text, Author Text, Intro/Outro templates, plus effect toggles like Particle Effects, Bloom/Glow and Captions/Lyrics. When a preview feels cluttered, this is where you simplify — toggle layers off while you tune, then back on before export. #### Beat FX, Captions & the deeper panels Beyond the everyday sections, **Beat FX** applies coordinated beat-reaction presets in one click, **Captions** holds the synced-lyric workflow (with on-device AI transcription), and **Intro & Outro** adds title cards around your video. The deeper visual dials — geometry shape, twist, fog, glow, motion echo, chromatic aberration — all live inside **Engine Parameters**, so there is one place to push an engine further. See [Pick & Switch Engines and Modes](https://visualizers.novusstreamsolutions.com/tutorials/pick-and-switch-engine-dimensions). #### Export Settings The finish line: **Shape** (aspect ratio), **Quality** (1080p/1440p/4K), **Frame Rate** (24/30/60) and **Format** (MP4/WebM), plus a summary card showing the exact pixel frame and duration. Pressing **Export** opens a review dialog before the render. Full detail in [Export Settings Explained](https://visualizers.novusstreamsolutions.com/tutorials/export-settings-explained). > **You will not use all of it every time** > A great video often needs just four sections: Audio File, Theme & Colors, Text Overlay, and Export Settings. Learn those first; reach for the rest when a specific video calls for it. --- ### Make a YouTube Music Visualizer URL: https://visualizers.novusstreamsolutions.com/tutorials/youtube-music-visualizer Difficulty: Beginner · Time: 10 min · Updated: 2026-07-16 The complete 16:9 workflow — pick an engine, load your track, add colors, text and a logo, dial in YouTube-ready export settings, and upload it right. **Before you start** - Your finished track (MP3 or WAV) and permission to use it. - Optionally a transparent-PNG logo and a release tagline. - A desktop browser (Chrome/Edge) for the frame-accurate 4K export. A visualizer video is the fastest way to get a finished track onto YouTube without filming anything. This walks the full path: choosing an engine, loading audio, adding your colors, text and logo, setting a YouTube-ready frame, and uploading so it actually looks good on the platform. Everything happens in your browser, and the export is free and yours. #### Step 1: Pick an engine Start on the [Templates gallery](https://visualizers.novusstreamsolutions.com/templates). Each card has a live preview; open one to compare its **six modes** against the preview, then click **Use in Classic** to load it in the editor. For YouTube, motion-heavy engines like Tunnel and Particles hold attention well at 1080p and up — but preview dense scenes on your own machine first, since they lean on the GPU. > **Judge before you customize** > Watch a template with its default motion for at least one full loop before changing anything. Rejecting a template in ten seconds is cheaper than un-customizing one after ten minutes. #### Step 2: Load your track In the **Audio File** panel, drag your track in or click **Select File** (MP3, WAV, OGG, M4A up to 200 MB). It is processed entirely in your browser. As soon as it loads, the editor wires up FFT reactivity automatically — bass drives impact, mids drive structure, highs drive sparkle — so the visuals react from the first play. Press play and watch a verse and a chorus. #### Step 3: Make it yours — colors, text, logo 1. **Theme & Colors** — click one of the nine palettes to recolor the whole scene, or use **Engine Parameters** for finer control. 2. **Text Overlay** — enter your Song Title and Artist Name, plus an optional Tagline ("Out now"). Drag the text in the preview or use the X/Y sliders. 3. **Visual Assets** — upload a Logo (lands top-right) and, if you want, a Background image. Keep images under 8 MB. 4. **Feature Toggles** — flip any layer on or off. If the preview feels busy, simplify here. > **Keep the edges clear** > Keep text and logos out of the bottom ~10% of the frame — YouTube's progress bar and controls cover it whenever a viewer moves their mouse. A transparent-PNG logo composites cleanly over any engine. #### Step 4: Set the frame to 16:9 In **Export Settings**, set **Shape** to 16:9 — YouTube's native player shape. The Frame readout confirms the exact pixels (1920×1080 at the 1080p tier). Switching shapes redraws the engine to fill the frame, so replay a section and re-check your text and logo placement afterward. #### Step 5: Export settings that work for YouTube Set **Quality** to 1080p (the baseline) or 4K if your machine can handle it — YouTube gives 4K uploads a better compression budget, so even 1080p viewers see a cleaner picture. Pick **60 fps** for beat-heavy motion (30 fps is fine for slow, ambient visuals), and **MP4** for format. Leave **Export full song duration** checked, press **Export**, confirm the review dialog, and the file downloads automatically. > **Render on desktop** > Chrome and Edge on desktop use a frame-accurate offline encoder — every frame is rendered, not screen-captured — so quality is clean regardless of playback speed. iOS Safari falls back to a lower-quality realtime recorder, and phones are capped at 1080p. Do your final YouTube render on a desktop. Full detail: [Export Settings Explained](https://visualizers.novusstreamsolutions.com/tutorials/export-settings-explained). #### Step 6: Upload it right - Upload as private or scheduled and wait for YouTube to finish processing HD/4K before sharing — early viewers on a still-processing video get a blurry stream. - Title it the way people search: "Artist – Song Title (Official Visualizer)". - Set a custom 1280×720 thumbnail — pause the preview on a peak moment, screenshot it, and add the track title in large type. - Releasing several tracks? Keep the engine and theme consistent and collect them in a playlist. See [Build a Consistent Album Set](https://visualizers.novusstreamsolutions.com/tutorials/design-cover-art). --- ### Make a Vertical Visualizer for Shorts, Reels & TikTok URL: https://visualizers.novusstreamsolutions.com/tutorials/vertical-shorts-visualizer Difficulty: Beginner · Time: 8 min · Updated: 2026-07-16 Turn a track into a 9:16 vertical clip built for short-form feeds — trim to your hook, keep overlays inside the safe zone, and export platform-ready. **Before you start** - A track with a strong hook or drop to build the clip around. - Ideally a project you have already styled — the [YouTube tutorial](https://visualizers.novusstreamsolutions.com/tutorials/youtube-music-visualizer) covers colors, text and logo. Short-form feeds are vertical and fast. A 9:16 visualizer clip of your hook is one of the cheapest, highest-return promo assets you can make — and if you have already built a 16:9 video, the vertical cut takes minutes because everything but the Shape carries over. #### Step 1: Choose a frame-friendly engine Vertical frames are narrow, so radial and column-style engines — **Radial**, **Bars**, **Waveform** — read better than wide ones. Clean, high-contrast modes are a strong default here: they stay crisp when the platform compresses your upload, and they run smoothly on any device. Browse the [gallery](https://visualizers.novusstreamsolutions.com/templates) and preview a couple before committing. #### Step 2: Set the Shape to 9:16 In **Export Settings**, set **Shape** to 9:16 (Portrait). The engine redraws to fill the tall frame. Because the composition changes, replay a section and nudge your **Text Overlay** and logo inward — a layout that looked balanced in 16:9 will crowd the edges in 9:16. *Figure: Diagram comparing 16:9, 9:16 and 1:1 frames — 9:16 is the full-screen shape for TikTok, Reels and Shorts. Keep overlays clear of the top and bottom.* #### Step 3: Trim to your hook Short-form clips live or die on the first few seconds. In **Export Settings**, uncheck **Export full song duration** and use the trim markers to cut a 15–60 second window — usually the drop or the catchiest line. The summary card shows the exact clip length in seconds so you know what you are rendering. #### Step 4: Export for the feed Set **Quality** to 1080p (that is 1080×1920 — exactly what these platforms want), **Frame Rate** to 30 or 60 fps, and **Format** to MP4. Export, and you have a vertical clip ready to post. Reuse the same styling across every clip so your feed reads as one identity. > **One project, two deliverables** > Export the 16:9 YouTube master first, then switch **Shape** to 9:16 and export the trimmed hook — same colors, text and logo, a second file in minutes. Adding synced words? See [Make a Lyric Video](https://visualizers.novusstreamsolutions.com/tutorials/synced-lyric-video). --- ### Make a Lyric Video with Synced Captions URL: https://visualizers.novusstreamsolutions.com/tutorials/synced-lyric-video Difficulty: Intermediate · Time: 12 min · Updated: 2026-07-16 Use the Lyric Video wizard and on-device Whisper transcription to get lyrics on screen at exactly the right moment, styled to stay readable, then export. **Before you start** - Your track (MP3, WAV or FLAC up to 200 MB). - Your lyrics typed out (optional — Novus can auto-transcribe them). - A desktop browser for the smoothest transcription and export. A lyric video needs three things: a visual that moves with the music, lyrics that appear at the right moment, and text that stays readable on top of everything. Novus does all three in the browser — no video editor, no account, and your audio never leaves your device. #### Step 1: Start on the Lyric Video Creator Open the [Lyric Video Creator](https://visualizers.novusstreamsolutions.com/lyric-videos). Its three-step wizard — Pick Engine, Enter Lyrics, Style & Export — collects your choices and drops you into the editor with the Captions controls already open. For the backdrop, four modes are tuned to leave room for text: **Waveform Line**, **Waveform Ribbon**, **Filled Wave** and **Line Spectrum**. Upload your audio, and paste your lyrics one line per row (each row becomes one on-screen caption). > **One line per row** > A pasted paragraph becomes one giant caption. Break your lyrics where you want them to change on screen. No lyrics typed out? Click **Transcribe Audio in Editor** to auto-generate them. #### Step 2: Get lyrics in — three routes - **Manual** — paste one line per row and click *Import pasted lines*. Novus spreads them evenly across the track as a starting grid you will tighten. - **Timed (SRT / LRC)** — already have synced lyrics? Paste the SRT/LRC and the timing comes in with the text. Fastest route. - **AI Generate** — transcribe the vocal directly from your audio (next step). #### Step 3: AI captions with on-device Whisper With audio loaded, **AI Generate** transcribes your song using Whisper, running 100% in your browser — no API key, no upload. An **AI model** dropdown offers Fast (~75 MB), Balanced (~145 MB) and Accurate (~250 MB); pick **Accurate** for the best word timing on your final pass. Songs are harder than speech, so tick **Isolate vocals first** (needs WebGPU) to separate the voice from the mix before transcribing. > **Treat it as a timed draft** > Whisper returns word-level timing, but names, slang and ad-libs often need a quick text fix. The timing skeleton is usually solid — you clean up the words, not the sync. #### Step 4: Time the lines to the vocal Each caption is a row with **Start** and **End** fields (adjustable in 0.1s steps). If AI or imported lyrics run consistently early or late, do not retime every row — drag the **Timing offset** slider (−3 to +3s) to shift them all at once. Turn on **Karaoke timing** to highlight each word as it is sung (this is what makes it feel synced rather than subtitled). Do a full playthrough to catch lines that linger or overlap. *Figure: Diagram of captions layered over a visualizer and background — Lyrics ride on top of the visualizer. Turn the engine's motion down slightly so the words stay the focus.* #### Step 5: Style for readability The **Style** selector offers ten presets (Clean White, Subtitle Bar, Neon Glow, Bold Impact, Cinematic, Karaoke, Pop Pill, Dark Minimal, Fire Text, Glass Card). Readability beats decoration: over a busy engine, pick **Subtitle Bar** or **Dark Minimal** so text sits on its own contrast layer, and keep one or two lines on screen at once. Use per-line overrides sparingly — a bigger chorus line reads as intentional; ten different styles read as noise. #### Step 6: Export (and grab the SRT) Open **Export Settings**, pick your **Shape** (16:9 for YouTube, 9:16 for Shorts), quality and format, and export — your caption timing, karaoke highlighting and timing offset all render exactly as they preview. One extra button worth knowing: **Export SRT** downloads your lyrics as a standard subtitle file you can upload to YouTube as closed captions or keep as a portable backup of your timing work. > **Test before the full render** > Export a 15–20 second test of the first chorus before committing to a full 4K render — timing mistakes are far cheaper to catch early. --- ### Recolor Your Visualizer with Themes & Engine Settings URL: https://visualizers.novusstreamsolutions.com/tutorials/recolor-with-themes-and-settings Difficulty: Beginner · Time: 6 min · Updated: 2026-07-16 Restyle any scene in one click with the nine palette presets, then fine-tune individual colors — and keep them consistent with your branding. **Before you start** - A template open in the [editor](https://visualizers.novusstreamsolutions.com/editor) with a track loaded. Color is the fastest way to make a template feel like *yours*. Novus gives you two levels of control: one-click palettes for an instant restyle, and per-parameter pickers when you want exact colors. #### Step 1: Apply a palette preset Open **Theme & Colors** and click one of the nine presets: **Neon, Sunset, Ocean, Midnight, Forest, Gold, Plasma, Rose,** and **Arctic**. Applying one pushes the palette across every color the engine uses, so nothing is left in the old scheme. This alone is usually enough to give a video its own identity. > **Match the palette to the mood** > Warm palettes (Sunset, Gold, Rose) read energetic and intimate; cool ones (Ocean, Midnight, Arctic) read spacious and modern; Neon and Plasma read as club energy. Our blog covers this in [Choosing the Right Engine for Your Genre](https://visualizers.novusstreamsolutions.com/blog/choosing-the-right-visualizer-for-your-genre). #### Step 2: Fine-tune individual colors For precise control, open **Engine Parameters** — the section that holds your specific engine's settings, including its individual color pickers, plus speed and density. Change one picker at a time and watch the preview; small shifts (a slightly warmer primary, a deeper background) often do more than a whole new palette. #### Step 3: Keep colors on-brand The strongest channels reuse the same small palette everywhere. Pick two or three hex values and pull your engine primary, your **Text Color** (in Text Overlay), and your logo glow from that same set. Changing the engine between videos is good for variety; changing the palette *and* layout at the same time is what makes a channel look scattered. Write your hex values down so the next video matches exactly. > **Where colors live** > Scene colors: **Theme & Colors** + **Engine Parameters**. Text color: **Text Overlay**. Logo glow/backplate: **Logo Appearance** and **Logo Effects** — covered in [Add Titles, Artist Text & a Logo](https://visualizers.novusstreamsolutions.com/tutorials/add-titles-artist-text-and-logo). --- ### Add Titles, Artist Text & a Logo URL: https://visualizers.novusstreamsolutions.com/tutorials/add-titles-artist-text-and-logo Difficulty: Beginner · Time: 7 min · Updated: 2026-07-16 Brand any visualizer with a song title, artist name and logo — positioned precisely, styled for readability, and repeatable across every video. **Before you start** - A template open in the [editor](https://visualizers.novusstreamsolutions.com/editor). - A transparent-PNG logo (optional but recommended). A visualizer that carries your logo, track title and artist name works harder than one that just looks good. The editor treats branding as a set of layers you can toggle, drag, resize and style on top of any engine — and because everything renders locally, the only branding in your export is the branding you put there. *Figure: Diagram of branding layers stacked over the engine — The engine renders in the middle; your background, logo, overlay and text sit in layers around it.* #### Step 1: Enter your text In **Text Overlay**, fill in **Song Title**, **Artist Name**, and an optional **Tagline / Release Message** ("Out now", "New single"). The title and artist render as separate layers (Song Title Text and Author Text in Feature Toggles), so you can show the artist name on screen but keep the track title for the description. Set the artist a step smaller than the title — the size hierarchy reads instantly, even on a phone. #### Step 2: Upload your logo In **Visual Assets**, upload into the **Logo** slot (it lands top-right by default). Use a PNG with a transparent background so it sits cleanly over any engine without a white box. Keep it under 8 MB — export it at roughly 2× display size so it stays crisp at 4K. There are also **Underlay** (behind the engine) and **Overlay** (in front) slots, each with a **Blend Mode** and **Opacity** — Screen at 40–60% is great for light-leak or glow textures. #### Step 3: Position it — drag or dial in The fastest way to place anything is to drag it in the preview — the text block, logo, overlay and captions are all draggable, and the logo has resize handles. For precise, *repeatable* placement, use the sliders: Text X/Y (in percent), and under **Asset Positions**, Logo Size (24–240), Logo X/Y, Overlay Size and Overlay X/Y. Because positions are stored as percentages, a layout you build in 16:9 holds together at any resolution. > **Write down your recipe** > Logo X 90, Y 10, size 56 is a recipe you can re-enter on the next video. Recording five slider numbers keeps every upload perfectly consistent. #### Step 4: Make the logo readable A raw logo can vanish into a bright, moving engine. The **Logo Appearance** group (under Feature Toggles, when the Logo layer is on) adds a backplate (Bg Color + Opacity), Corner Radius, Shadow, and Glow. Or use the **Logo Effects** presets — Neon Purple/Cyan/Green/Pink/Gold/Red/White and Drop Shadow — for a one-click result. A black backplate at 40–60% opacity with a small corner radius gives your logo a guaranteed-readable zone no matter what the engine does behind it. > **Shadow separates, glow decorates** > If readability is the problem, reach for Shadow Blur before Glow Amount. Match the glow color to the engine's primary so the logo feels lit by the visualizer instead of pasted on. --- ### Tune Audio Reactivity & Beat Sync URL: https://visualizers.novusstreamsolutions.com/tutorials/tune-audio-reactivity Difficulty: Intermediate · Time: 8 min · Updated: 2026-07-16 The difference between a generic bouncing visual and one that feels mixed to your song — Sensitivity, Reactivity, Pulse/Burst, Frequency Focus and beat motion, in the right order. **Before you start** - A template open with your actual track loaded (tune against the real song, not a default). Every engine reacts automatically, but a handful of controls decide whether it feels *mixed to your song* or just generically bouncy. They live across three sections — **Visualizer Controls** (Audio Reaction Style), **Engine Parameters**, and **Beat FX** — and every one applies identically to the preview and the export, so what you tune is what you render. Want the theory first? See [How Music Visualizers Work](https://visualizers.novusstreamsolutions.com/blog/how-music-visualizers-work). #### Sensitivity vs Reactivity — two different jobs These get confused constantly. **Sensitivity** (under Engine Parameters, ~0.5–3, default 1.2) is input gain: how *far* the visual moves for a given audio level. Raise it if a quiet track barely moves; lower it if a loud master pins everything at maximum. **Reactivity** (in Audio Reaction Style, 0–1, default 0.20) is how *hard and fast* shapes chase the audio. A big cinematic look is high Sensitivity with low Reactivity; an aggressive EDM look flips that. *Figure: Diagram of the audio spectrum split into bass, mid and treble bands — Frequency Focus decides which part of the spectrum drives the motion — bass, mids, treble, or one exact band.* #### Reactivity, Pulse & Burst The **Reactivity** slider sets how quickly the visual tracks the audio: keep it low for flowing ambient or lo-fi motion and raise it for a sharper, more immediate response. **Pulse Intensity** adds overall beat punch; **Burst Intensity** adds swell on sudden hits and drops. For finer envelope shaping, the engine controls expose Beat smoothing, attack and release only where the live V3 renderer supports them. #### Frequency Focus — steer the motion **Frequency Focus** decides which part of the spectrum drives the visual: Full Spectrum, **Bass Heavy** (kick and bassline — the usual choice for beat music), **Mid Focus** (vocals and leads), or **Treble Focus** (hi-hats and air). For surgical reactions, the 32-band group locks the visual to one narrow band — for example Band 4 (Kick body) so it moves only on the kick, ignoring the bassline. Narrowing the focus is also the fix when Full Spectrum feels mushy on a dense mix. #### Beat sync & frame motion Beat detection is automatic — Novus estimates BPM from the bass onsets, so beats stay steady through breakdowns. You decide how much each beat *moves the whole frame* with the **Frame motion** sliders: Beat screen shake, Beat pulse (scale), Beat tilt, Beat glow and Beat drift, all governed by a **Motion smoothing** slider. Prefer presets? The **Beat FX** section applies coordinated looks (Camera Shake, Scale Pulse, Glow Pulse, Cinematic, Rave Mode…) in one click, and you can trim the sliders afterward. > **Flashing sensitivity** > Use Beat Strobe and heavy full-frame flashing sparingly on published videos — rapid flashing can be uncomfortable for some viewers. #### A practical tuning order 1. Play the **loudest** section and set **Sensitivity** so peaks nearly fill the frame. 2. Pick a **Frequency Focus** that matches the song — bass for beat music, mids for vocals. 3. Set **Reactivity** — low for smooth, higher for snappy — then add only as much **Pulse/Burst** as the mix needs. 4. Add beat character with the **Frame motion** sliders (or a Beat FX preset). 5. Play the **whole** song — Motion smoothing and Reactivity trade energy for consistency across sections. > **Change one thing at a time** > Sensitivity, Reactivity and Pulse/Burst all shape the apparent movement — moving two at once makes it impossible to tell what did what. If the visual looks jittery, lower Reactivity before touching anything else. --- ### Pick & Switch Engines and Modes URL: https://visualizers.novusstreamsolutions.com/tutorials/pick-and-switch-engine-dimensions Difficulty: Intermediate · Time: 7 min · Updated: 2026-07-16 13 engines, six modes each — 78 looks in one control system. What an engine is, what a mode changes, what each costs your machine, and how to switch without losing your work. **Before you start** - Curiosity — no setup needed; you can compare modes right on any template page. Novus ships 13 production engines — **Particles, Trails, Bloom, Character Motion, Radial, Spectrum, Bars, Tunnel, Waveform, Logo, Lattice, Terrain and Stage Lights** — and each one carries **six modes**, for 78 distinct looks. None of it is a pricing tier; every engine and mode is free to preview, edit and export. The choice is purely creative and technical. #### Engines — the core visual algorithm An engine is the algorithm that draws the scene: Particles emits and moves points, Bars lays out an equalizer, Tunnel flies a camera through a looping depth corridor, Character Motion choreographs glyphs and rigs. Pick the engine by what the frame should *be* — the [Templates gallery](https://visualizers.novusstreamsolutions.com/templates) shows one live card per engine, and our genre guide matches engines to music styles. #### Modes — six looks per engine, one control set A mode is a curated configuration of its engine, not a separate template: Particles ships Dust Storm, Waterfall, Starfield, Fountain Burst, Orbit Swarm and Constellation; Bars ranges from a Linear Equalizer to Radial Bars and a Piano/Step Grid. Because a mode only changes settings, everything stays editable after you pick one — and switching modes never touches your audio, text or layout. #### One shared control system All 13 engines expose the same core controls — **Color Mode** (duo, gradient or full-spectrum rainbow), **Beat Response**, **Pulse intensity**, **Beat shake**, **Rotation** and **Glow** — plus a per-engine group like Particles, Trails or Bars density. That is what makes switching cheap: the look you dialed in translates, because the dials themselves are shared. > **Performance in one sentence** > Every engine carries desktop and mobile density budgets, so nothing melts a laptop by default — if a preview stutters, lower the engine's density slider (particle count, trail count, bar count) first, and use the 30 FPS preview toggle on template pages for older machines. #### How to switch On any [template detail page](https://visualizers.novusstreamsolutions.com/templates), a grid of **mode tiles** under the live preview swaps the mode in place (the preview keeps running, so you can A/B all six in seconds) and updates the URL so the link is shareable. Inside the editor, the **Template** section swaps both engine and starting preset while keeping your media, text and layout work; in Studio, the same engines are layers you can restack and blend. > **Change one axis at a time** > A common workflow: lock the engine first, audition its six modes against your actual track, then fine-tune in the editor. Switching the engine and the palette at once makes it hard to tell which change did what. --- ### Design Cover Art for Your Release URL: https://visualizers.novusstreamsolutions.com/tutorials/design-cover-art Difficulty: Beginner · Time: 7 min · Updated: 2026-07-16 Build square cover art in the Cover Art & Canvas Studio — a layer-based editor with animated backgrounds and one-click templates — and export a high-resolution PNG. **Before you start** - Your track title and artist name. - Optionally finished artwork to drop in as an image layer. Cover art is often seen tiny — a couple of centimeters in a phone library — so it has to read at thumbnail size. The [Cover Art & Canvas Studio](https://visualizers.novusstreamsolutions.com/albums) builds one in your browser for free, with nothing uploaded and nothing saved to a server. #### Step 1: Start a square cover On the [/albums](https://visualizers.novusstreamsolutions.com/albums) page, the **Start a new cover** panel asks for a **Title** and **Artist** (these pre-fill the text layers) and a **Format** toggle. Choose **Square cover (1:1)** for streaming art. If you already have finished artwork, add it in the optional cover-image upload — it drops into the editor as an image layer you can position and blend. Click **Open editor** to enter the Studio. #### Step 2: Build with layers or a template The Studio is a layer editor with up to five layers of four types — **background, text, shape, image**. The **background** layer is where motion comes from: it has Solid, Gradient, Image and **Visualizer** modes (Visualizer runs a real engine behind your art, driven by a synthetic beat, so it animates with no audio at all). If you would rather not start from scratch, the **Templates** grid applies a complete look in one click — 19 presets like Deep Neon, Visualizer Canvas, Sunset Vibes, Matrix Code and EDM Geometric — with every layer still editable afterward. *Figure: Diagram comparing a square cover with a vertical Canvas — Cover art is square (1:1). Design it to read at thumbnail size — bold and simple beats detailed.* #### Step 3: Get the typography right On a cover, the artist and title are the message. Give them a clear hierarchy — one dominant, one secondary — and choose a font with enough weight to survive scaling. Text layers get font, size, color, shadow, outline, position, opacity and rotation. Resist crowding; negative space reads as confidence. #### Step 4: Export a high-resolution PNG The **Export Size** dropdown offers 1:1 Square (3000×3000), Spotify Canvas (1080×1920), Bandcamp Cover (3000×3000), SoundCloud Header (2480×520) and YouTube Thumbnail (1280×720). Pick **3000×3000** and click **Export PNG** for a lossless file (or Export JPEG for a smaller one) — 3000×3000 matches what most distributors recommend for streaming cover art. > **One design, two formats** > Build the square cover first, export it, then click **Start over**, switch to Vertical Canvas, and rebuild with the same colors and fonts — or upload the exported cover as the image layer so your Canvas loop animates around your artwork. Next: [Make a Spotify Canvas Loop](https://visualizers.novusstreamsolutions.com/tutorials/spotify-canvas-loop). --- ### Make a Spotify Canvas Loop URL: https://visualizers.novusstreamsolutions.com/tutorials/spotify-canvas-loop Difficulty: Intermediate · Time: 8 min · Updated: 2026-07-16 Build the short vertical loop that plays behind your track on Spotify — a seamless 9:16 MP4 — using the Canvas Studio or the audio-reactive editor route. **Before you start** - A [Spotify for Artists](https://visualizers.novusstreamsolutions.com/albums) account to upload the finished loop (free for anyone with music on Spotify). - Optionally your cover art or a track to drive an audio-reactive loop. A Spotify Canvas is a short, silent, vertical loop (3–8 seconds, 9:16) that plays behind your track on the Spotify mobile app and when listeners share it to Stories. There is no audio in a Canvas — your track is already playing underneath. Novus builds one for free, entirely in your browser. #### Route A: the Canvas Studio (synthetic beat) On [/albums](https://visualizers.novusstreamsolutions.com/albums), start a new cover and set **Format** to **Vertical Canvas (9:16)** so your preview matches the phone screen. In the Studio, set the background layer's mode to **Visualizer** and pick any engine — it animates on a built-in synthetic beat with no audio upload. The **Visualizer Canvas** template is the quickest starting point; it comes with a live engine background already enabled. Add motion with the **Animation Effects** panel — one of five overlays (Pulsing Glow Border, Waveform Ring, Particle Burst, Zoom Pulse, Color Shift). Restraint pays off: a Canvas loops the whole time someone listens, so one or two motion sources at moderate intensity read better than everything at once. All motion renders on a shared cycle so the last frame lands exactly where the first began — that is what makes the loop seamless. *Figure: A slow cosmic scene suitable for a seamless Canvas loop — Slow, continuous motion hides the loop seam. Cosmic and organic scenes loop the most cleanly.* #### Export the silent MP4 Click **Spotify Canvas (MP4)** under the preview. It always renders at **1080×1920** (the recommended Canvas resolution) and records a **6-second** seamless loop at 30 fps with no audio track — exactly what Spotify wants. The button shows live *Recording %* then *Encoding %*, and the file downloads. Keep the tab in the foreground while it records — the 6-second capture runs in real time. > **Route B: an audio-reactive loop** > Want the Canvas to react to your actual song? Below the Studio on /albums, the **Spotify Canvas Loop** card opens the full editor pre-sized to 1080×1920 with an 8-second loop. Upload your track, pick any of the 13 engines, trim to an 8-second hook where the motion ends near where it began, and export a full-quality MP4 driven by the music. #### Upload to Spotify for Artists In the Spotify for Artists app (or web dashboard), open **Music**, select the track, choose **Canvas**, and upload your MP4. The Studio's 1080×1920, 6-second output meets every requirement (9:16, 3–8s, MP4, ≥720px tall). Canvases usually go live after a short review, and you can set a different loop for every track. Check the finished loop on your own phone first — the Now Playing screen crops slightly differently across devices, so keep anything essential away from the extreme edges. > **Keep a release consistent** > Making Canvases for a whole album? Reuse one template and color scheme across every track's loop so your release looks consistent as listeners skip through it. See [Design Cover Art](https://visualizers.novusstreamsolutions.com/tutorials/design-cover-art) for the matching square. --- ### Export Settings Explained URL: https://visualizers.novusstreamsolutions.com/tutorials/export-settings-explained Difficulty: Beginner · Time: 7 min · Updated: 2026-07-16 Shape, Quality, Frame Rate and Format — what each control does, how the final frame size is calculated, and the exact combination to pick for every platform. **Before you start** - A project in the [editor](https://visualizers.novusstreamsolutions.com/editor) ready to export. Every video is rendered in your browser, for free, at settings you control. The **Export Settings** panel gives you four decisions — Shape, Quality, Frame Rate and Format — plus a summary card showing the exact frame size, aspect ratio and duration. Whatever the summary shows is exactly what gets encoded, so check it before a long render. #### Shape — the frame for your platform Shape is the aspect ratio, and it is the first thing to decide because every platform has a native frame. There are six presets: **16:9** (YouTube, desktop), **9:16** (TikTok, Shorts, Reels, Spotify Canvas), **1:1** and **4:5** (Instagram feed), **21:9** (cinematic teasers) and **4:3** (retro). Clicking a shape recomputes the resolution instantly and redraws the engine to fill the frame — nothing is letterboxed or cropped. *Figure: Diagram of 16:9, 9:16 and 1:1 export shapes — Set the Shape to the destination first. Re-check overlay placement after switching — a radial engine balanced in 16:9 can feel cramped in 9:16.* #### Quality — 1080p, 1440p, 4K Quality sets the resolution tier by the frame's short edge — 1080, 1440 or 2160 px — with the long edge derived from your Shape. So 16:9 at 4K is 3840×2160, and 9:16 at 1080p is 1080×1920. Higher tiers cost render time and file size in proportion to pixel count (4K has 4× the pixels of 1080p). **Phones are capped at 1080p** — for 1440p or 4K, use a desktop. > **When to go 4K** > 1080p is the sweet spot for most releases — it exports fastest and platforms compress heavily anyway. Choose 4K for TV viewing or extra headroom against YouTube's compression: YouTube gives 4K uploads a higher-quality encoding ladder. #### Frame Rate — 24, 30, 60 fps Since Novus renders every frame from your audio's real frequency data, higher frame rates make beat-reactive motion visibly smoother. **60 fps** is the best default for music visualizers; **30 fps** halves the render work and file size and is fine for slower, ambient visuals; **24 fps** gives a filmic cadence for cinematic 21:9 and lyric styles. Frame rate scales render time almost linearly — dropping a 4K full-length export to 30 fps is the single biggest time saving available. #### Format — MP4 vs WebM **MP4** (H.264/AAC) is the universal choice — every upload form, phone and editor accepts it. **WebM** (VP9/Opus) often compresses slightly better but some tools are picky about it. If unsure, pick MP4. Under the hood, desktop Chrome and Edge use a frame-accurate offline encoder (WebCodecs) that renders every frame with no dropped frames; iOS Safari falls back to a lower-quality realtime recorder and, for MP4, converts the recording afterward. Either way everything happens on your machine — nothing touches a server. #### Full song or a trimmed window The summary card has an **Export full song duration** checkbox. Leave it checked to render the whole track; uncheck it to export only your trim markers — how you cut a 15-second teaser or a chorus loop without editing the audio elsewhere. The Export window row always shows the exact seconds you will render. #### Recommended settings by platform - **YouTube** — 16:9, 1080p (or 4K), 60 fps, MP4, full song. - **TikTok / Shorts / Reels** — 9:16, 1080p (=1080×1920), 30 or 60 fps, MP4, trimmed to a 15–60s hook. - **Instagram feed** — 4:5 (=1080×1350) or 1:1, 1080p, 30 fps, MP4. - **Spotify Canvas** — 9:16, 1080p, MP4, a short 3–8s loop. See [Make a Spotify Canvas Loop](https://visualizers.novusstreamsolutions.com/tutorials/spotify-canvas-loop). - **When in doubt** — 16:9, 1080p, 60 fps, MP4 uploads everywhere. --- ### Build Stream Overlays for OBS URL: https://visualizers.novusstreamsolutions.com/tutorials/stream-overlays-for-obs Difficulty: Intermediate · Time: 7 min · Updated: 2026-07-16 Turn a visualizer into a transparent-looking stream overlay — export a strip on a black background and use the Screen blend trick in OBS or Streamlabs. **Before you start** - OBS Studio or Streamlabs installed. - Optionally your logo and a Now-Playing style text. A reactive audio strip along the bottom of your stream is a clean way to show what is playing. Novus does not export true transparency, but a simple trick — a bright visualizer on a pure black background plus a blend mode in OBS — gets you there. #### Step 1: Browse and pick an overlay effect The [Stream Overlays page](https://visualizers.novusstreamsolutions.com/overlays) is a gallery of canvas-drawn effects in four categories — **Visual FX, Ambient, Color Grade** and **Frame** — each with a live preview. Open one to preview it over all 13 engines, adjust its opacity, and hit **Open in Editor with this Overlay** to start building. Inside the editor, the same effects live in the **Stream Overlay Templates** section, and they render directly onto the visualizer canvas — baked into your export, no compositing needed. #### Step 2: Build a strip on black The practical build: pick a strip-style engine (a spectrum or waveform), set a **pure black background**, add your logo and a Now-Playing text, and keep everything in the bottom portion of the frame. Black is the key — it is what will drop out in OBS. *Figure: A spectrum-bars strip suitable for a stream overlay — A spectrum or waveform strip on a black background is the classic overlay build.* #### Step 3: Export the loop Export as an MP4 at your stream canvas size (usually 16:9, 1920×1080). A short section is fine — you will loop it in OBS. See [Export Settings Explained](https://visualizers.novusstreamsolutions.com/tutorials/export-settings-explained) for the details. #### Step 4: Add it in OBS with Screen blend 1. In OBS, add the exported video as a **Media Source** and set it to loop. 2. Size it to your 1920×1080 canvas. 3. Set the source's **Blend Mode** to **Screen** — the black background drops out, leaving only the bright bars, text and logo over your gameplay or camera. 4. Position it in the bottom ~20% so it never fights your webcam or game HUD. > **Neon survives the trick best** > The Screen-blend trick makes pure black invisible, so bright, glow-heavy elements on dark backgrounds composite cleanest. The /overlays page also includes a four-step OBS & Streamlabs walkthrough covering export, source setup, sizing and audio. --- ### Find Music & Generate Sound Effects URL: https://visualizers.novusstreamsolutions.com/tutorials/music-and-sound-effects Difficulty: Beginner · Time: 6 min · Updated: 2026-07-16 Two free browser audio tools — a copyright-free music library and a 300-preset SFX synth — and the fastest ways to get their output into your visualizer. **Before you start** - Nothing — both tools run in the browser with no account. Novus ships two free audio resources: a copyright-free music library and a browser-based sound-effects synthesizer. Both run entirely on your device, require no account, and produce files you download and keep. #### The Audio Library — copyright-free tracks The [Audio Library](https://visualizers.novusstreamsolutions.com/audio-library) is a catalogue of 26 copyright-free tracks across eight genres (Electronic, Ambient, Hip-Hop, Cinematic, Lo-Fi, Jazz, Rock, Classical), plus 40 ready-made sound effects. Search by title, genre or **BPM** — typing "140" surfaces every 140 BPM track — and filter by genre pills and a tempo slider. Each track pairs with a hand-picked engine, so clicking **Use in Editor** opens the editor with the song *and* its matching engine already loaded. > **Filter by BPM first** > BPM matters more than genre for visualizers — a 140 BPM track drives beat-reactive effects far harder than a 65 BPM ambient piece. The paired engine is just a starting point; switch to any engine once you are in the editor and the audio stays loaded. #### The SFX Generator — 300+ presets & a synth When a stock sound is close but not right, the [Audio Effects Generator](https://visualizers.novusstreamsolutions.com/audio-effects) is a live synthesizer with 300+ presets across 17 categories (Risers & Sweeps, Drops & Impacts, FX & Glitch, Cinematic Hits, UI Sounds and more). Click a preset to load it into the **Sound Designer**, which exposes real synthesis controls — Oscillator, Envelope (ADSR), Filter, LFO, Effects and Volume — with a live waveform display. There is even an **AI Generate** box: type "dark ominous bass drop" and it builds parameters from your keywords, all processed locally. #### Export quality & getting audio into a project The Sound Designer's **Export Quality** picker offers Standard (44kHz/16-bit), High Quality (48kHz/24-bit) and Studio (96kHz/24-bit), and a **Loops (Extend)** slider repeats the sound up to eight times. Choose **High Quality (48kHz)** to match video-industry standards. Two fast routes into a visualizer: **Use in Editor** on any library track, or **Copy to Editor** in the Sound Designer to load your current SFX as the editor's audio source. > **Licensing** > Library tracks are royalty-free and cleared for commercial use; sounds you build in the SFX generator are synthesized on your own device, so they are yours to use. As always, you own every visualizer you create — no account, watermark or fee. --- ## Blog posts ### How Canvas Paints an Audio Visualizer URL: https://visualizers.novusstreamsolutions.com/blog/how-canvas-paints-an-audio-visualizer Published: 2026-08-09 · Author: Novus Team · 9 min read The other half of how audio visualizers work: requestAnimationFrame, reading AnalyserNode, and drawing bars, particles and tunnels on an HTML Canvas every frame. An FFT without a drawing surface is a spreadsheet. A Canvas without audio is a screensaver. **How audio visualizers work** in the browser is the marriage of the two: once per animation frame, read the analyser, then paint. The FFT half is [How FFT Turns Audio Into Visualizer Bands](https://visualizers.novusstreamsolutions.com/blog/how-fft-turns-audio-into-visualizer-bands). This post is the paint half — `requestAnimationFrame`, `CanvasRenderingContext2D` (and WebGL where a scene needs it), and why a visualizer that ignores the clock looks drunk even when the FFT is correct. Novus engines all implement that loop against one composition document. The [engine reference](https://visualizers.novusstreamsolutions.com/help/visualizers) is the per-engine control table; the [glossary](https://visualizers.novusstreamsolutions.com/glossary#frame-rate) defines frame rate, fixed-step clocks and deterministic export. What follows is the browser platform those pages assume. #### The frame loop is the product `requestAnimationFrame` asks the browser to call you just before the next paint — typically 60 times a second, or whatever the display’s refresh rate is. That callback is the visualizer’s heartbeat. Inside it you: (1) pull fresh frequency and waveform data from `AnalyserNode`, (2) derive bands, RMS and onset, (3) clear or fade the canvas, (4) draw this engine’s geometry, (5) schedule the next frame. Skip step 1 and you get a still. Skip step 3 and you get a smear. Skip scheduling and the scene freezes after one picture. > **rAF is vsync, not a metronome** > The callback interval follows the display, not the song. A 120 Hz laptop and a 60 Hz TV will invoke you at different rates. That is why export cannot simply “record the preview”: a [fixed-step clock](https://visualizers.novusstreamsolutions.com/glossary#fixed-step-clock) steps audio and draw at a chosen frame rate so two renders of the same project match. Preview is allowed to be display-timed; the file you upload is not. *Figure: Diagram of the visualizer signal chain from audio analyser to canvas to export — Audio → analyser → engine draw → canvas. Export replays the same chain on a fixed clock.* #### What Canvas actually gives you The [HTML canvas element](https://html.spec.whatwg.org/multipage/canvas.html) is a bitmap with a drawing context. 2D context (`getContext("2d")`) is enough for bars, waveforms, particles, trails and most lyric typography: `fillRect`, `beginPath`, `arc`, `fillText`, gradients, compositing. WebGL / WebGPU enter when a scene is a mesh, a tunnel of instanced streaks, or a full-screen shader. Novus’s V3 engines share one runtime so a mode can stay on Canvas2D without pretending to be a game engine. - **Clear vs fade.** `clearRect` every frame for a crisp EQ. A translucent black fill for trails and tunnels that need memory of the last frame. - **Device pixels.** `canvas.width` is not CSS pixels. Visualizers that ignore `devicePixelRatio` look soft on retina screens and overdraw on low-DPI ones. - **State is cheap until it isn’t.** Save/restore, heavy shadows and per-particle `shadowBlur` are the usual ways a 60 fps preview falls to 20. The [render-load](https://visualizers.novusstreamsolutions.com/glossary#render-load) label on each engine is the honest ceiling, not marketing. None of this is Novus-specific. It is why a “music visualizer in JavaScript” tutorial always starts with a ``, an `AudioContext`, and a `requestAnimationFrame` loop. The product work is mapping *this* engine’s controls onto *that* loop without drifting from export. #### Reading audio inside the callback The analyser must be read **in the frame**, not cached from click-time. `getByteFrequencyData` and `getByteTimeDomainData` fill arrays you own; they do not allocate. Typical pattern: allocate the `Uint8Array`s once when the scene starts, then reuse them every rAF. Allocating a new array each frame is a GC hitch waiting to happen, and hitches look like missed beats. From those arrays you derive the same measurements the FFT article described: bins → [bands](https://visualizers.novusstreamsolutions.com/glossary#frequency-bands), waveform → [RMS](https://visualizers.novusstreamsolutions.com/glossary#rms) / peak, bass jump → [onset](https://visualizers.novusstreamsolutions.com/glossary#onset). Then each engine maps those numbers onto *its* vocabulary — bar height, particle emission, tunnel speed, glyph scatter. Same inputs; different drawings. That is why [Choosing the Right Visualizer Engine](https://visualizers.novusstreamsolutions.com/blog/choosing-the-right-visualizer-for-your-genre) is a drawing choice, not an audio-math choice. *Figure: A spectrum-bars visualizer still — Spectrum is the most literal Canvas mapping: one bar per bin or band, height from magnitude.* #### Bars, particles and tunnels are just different draw calls Once the numbers exist, the engine is a style of painting: - **Spectrum / Bars** — iterate bins or bands, `fillRect` (or a trapezoid) proportional to magnitude. Mirror modes draw twice. - **Particles** — spawn or nudge sprites from bass and onset; integrate positions; draw circles or sprites. Emission rate is a mapping, not a texture. - **Tunnel / Warp Field** — step a depth parameter with energy, draw rings or streaks receding in perspective. Beat accents hitch a ride on the same clock. - **Waveform** — plot the time-domain array as a polyline or a 3D ribbon. No FFT required, which is why it still moves on a sine wave. Open those four on the same track from the [template gallery](https://visualizers.novusstreamsolutions.com/templates) and you are watching four Canvas programs consume one analyser. The [engine reference](https://visualizers.novusstreamsolutions.com/help/visualizers) then tells you which controls each program actually reads — not a brochure list, the live schema both editors use. #### Why export cannot screenshot the preview A preview canvas is coupled to the display: rAF timing, tab visibility, `prefers-reduced-motion`, GPU load, even the size of the panel. An export has to be **[deterministic](https://visualizers.novusstreamsolutions.com/glossary#deterministic-export)** — same project, same audio, same file. So the offline path replays the analyser at a fixed frame rate and draws into an offscreen canvas (or encoder input) instead of recording whatever was on screen. If preview and export ever disagree, it is almost always because one path read a control the other ignored — which is exactly what the control-wiring tests exist to catch. > **Reduced motion is a preview concern** > Marketing canvases (homepage hero, engine cards) read `prefers-reduced-motion` and stop the rAF loop after one composed frame. The editor canvas does **not** silently freeze your composition because of an OS setting — that would be editing someone else’s document without asking. Preview stop ≠ export change. Details are on the [accessibility](https://visualizers.novusstreamsolutions.com/accessibility) page. #### Put it together How audio visualizers work, end to end: decode audio → `AnalyserNode` → FFT bins and time-domain samples → bands / RMS / onset → `requestAnimationFrame` → Canvas draw → (on export) the same draw on a fixed clock. The [glossary](https://visualizers.novusstreamsolutions.com/glossary) is the vocabulary; the [engine reference](https://visualizers.novusstreamsolutions.com/help/visualizers) is the per-engine map; [How FFT Turns Audio Into Visualizer Bands](https://visualizers.novusstreamsolutions.com/blog/how-fft-turns-audio-into-visualizer-bands) is the measurement chapter. Open the [editor](https://visualizers.novusstreamsolutions.com/editor) and watch one frame of that loop happen sixty times a second. **Sources** - [HTML Living Standard: The canvas element](https://html.spec.whatwg.org/multipage/canvas.html) - [MDN: Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API) - [MDN: Window.requestAnimationFrame()](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame) - [MDN: AnalyserNode](https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode) --- ### How FFT Turns Audio Into Visualizer Bands URL: https://visualizers.novusstreamsolutions.com/blog/how-fft-turns-audio-into-visualizer-bands Published: 2026-08-09 · Author: Novus Team · 9 min read What a Fast Fourier Transform actually measures in a song, how AnalyserNode bins become bass/mid/treble, and why those numbers drive every audio-reactive canvas. If you have ever wondered *how audio visualizers work*, the short answer is not “magic bars.” It is a repeating measurement: take a short window of the waveform, run a **Fast Fourier Transform** (FFT), and draw something that reflects the result. This post is the FFT half of that loop — what the transform actually returns, how browsers expose it, and how visualizer engines collapse hundreds of bins into bass, mid and treble. The drawing half is [How Canvas Paints an Audio Visualizer](https://visualizers.novusstreamsolutions.com/blog/how-canvas-paints-an-audio-visualizer). Novus’s own one-line definitions live in the [glossary](https://visualizers.novusstreamsolutions.com/glossary#fft). This article is the longer explainer those Search Console queries were asking for: not a product tour, and not a DSP textbook — just enough signal processing to tune a scene on purpose. #### The waveform is time; the FFT is frequency A digital audio file is a list of pressure samples over time — a single wiggly line. That line is useful if you want an oscilloscope, and Novus’s [Waveform](https://visualizers.novusstreamsolutions.com/templates/waveform) engine draws it. Most visualizers want a different question: *which pitches are loud right now?* An FFT answers that. It takes one slice of the waveform and returns a **spectrum**: energy versus frequency, from sub-bass on the left to air and cymbals on the right. The companion post [How Music Visualizers Work](https://visualizers.novusstreamsolutions.com/blog/how-music-visualizers-work) walks the whole measure-then-draw loop. Here we stay inside the measurement. If you only remember one sentence: **the FFT does not invent musical notes — it reports how much energy sits in each frequency slot of the current window.** *Figure: Diagram of an audio spectrum split into bass, mid and treble frequency bands — The FFT returns many narrow bins. Engines usually group them into bass, mid and treble before mapping them onto motion.* #### What a frequency bin actually is The spectrum is not a continuous rainbow. It is a row of **[frequency bins](https://visualizers.novusstreamsolutions.com/glossary#frequency-bin)** — fixed-width slots. More bins means finer pitch detail and a busier picture; fewer bins means a smoother, calmer shape. In the browser the slot count is controlled by `AnalyserNode.fftSize` (a power of two). `frequencyBinCount` is half of that, because a real signal’s FFT is symmetric. - **Bin 0** sits at DC / near-silence energy — rarely useful for a kick drum. - **Low bins** cover kick, bass and sub. They are wide in musical terms at the bottom of a linear FFT. - **High bins** cover hats, air and noise. Linear Hertz spacing puts a lot of slots up here relative to how we hear pitch. > **Linear Hertz is not how hearing works** > A linear FFT spends equal width on 200–400 Hz and on 10–10.2 kHz. Musically, the first interval is huge and the second is tiny. That is why some analysers remap onto a [mel scale](https://visualizers.novusstreamsolutions.com/glossary#mel-scale) before drawing. Novus’s band summaries (bass / mid / treble) are the practical compromise most scenes want: three numbers instead of hundreds of bins, still honest about which region of the spectrum moved. #### How the browser exposes it: AnalyserNode You do not implement an FFT by hand in a visualizer. The [Web Audio API](https://www.w3.org/TR/webaudio/) gives you an `AnalyserNode`. Connect the playing audio into it, then once per frame call `getByteFrequencyData(array)` (or the float variant). The array comes back filled with 0–255 magnitudes, one per bin. That is the same node Novus’s preview and export analysers read; the [engine reference](https://visualizers.novusstreamsolutions.com/help/visualizers) is downstream of those numbers, not a second audio engine. `fftSize`, `smoothingTimeConstant` and `minDecibels` / `maxDecibels` change the *feel* of the spectrum before any visualizer control is touched. A high smoothing constant makes bars glide; a low one makes them twitch. Decibel range is why a quiet acoustic track and a brickwalled EDM master can both fill the frame — or why one of them pins every bar to the ceiling. The glossary calls the product-side cousins of those ideas [spectral smoothing](https://visualizers.novusstreamsolutions.com/glossary#spectral-smoothing) and [gain](https://visualizers.novusstreamsolutions.com/glossary#gain). #### From bins to bass, mid and treble A full `getByteFrequencyData` buffer is more detail than a tunnel, a particle field or a lyric scene can use. Engines therefore collapse neighbouring bins into **[bands](https://visualizers.novusstreamsolutions.com/glossary#frequency-bands)**: - **Bass** (roughly 20–250 Hz) — kick, sub, the weight of a drop. Typically drives scale, camera shake, emission bursts. - **Mids** (roughly 250 Hz–4 kHz) — vocals and most instruments. Good for the readable “body” of a scene. - **Treble** (roughly 4–20 kHz) — hats, sparkle, air. Sparks, glints, fine particles. Those Hertz ranges are conventional, not sacred. What matters is that **the same band math runs in preview and in export**, so a binding you dial in the editor is the binding in the file. That contract is what [deterministic export](https://visualizers.novusstreamsolutions.com/glossary#deterministic-export) is protecting: the picture is a function of the audio window, not of whatever the GPU happened to be doing that millisecond. > **See the bins before you map them** > Open a [Spectrum](https://visualizers.novusstreamsolutions.com/templates/spectrum) or [Bars](https://visualizers.novusstreamsolutions.com/templates/bars) scene on a track you know. The leftmost columns are your kick; the rightmost are hats. Then open [Particles](https://visualizers.novusstreamsolutions.com/templates/particles) or [Tunnel](https://visualizers.novusstreamsolutions.com/templates/tunnel) on the *same* file — identical analyser, different drawing. That is the fastest way to separate “the FFT did this” from “this engine draws it that way.” The [Tune Audio Reactivity](https://visualizers.novusstreamsolutions.com/tutorials/tune-audio-reactivity) tutorial has starting points per genre. #### Amplitude, RMS and onset sit beside the FFT The spectrum is not the only measurement. **Peak amplitude** is the loudest sample in the window; **[RMS](https://visualizers.novusstreamsolutions.com/glossary#rms)** is a smoother loudness. A **[beat](https://visualizers.novusstreamsolutions.com/glossary#beat)** in this product is really an **[onset](https://visualizers.novusstreamsolutions.com/glossary#onset)** — a jump in energy, usually bass, relative to the recent average. You can have a rich FFT and still miss the kick if onset detection is too slow, and you can have a perfect onset latch with a boring spectrum if the track is a sine wave. Visualizers that feel “in time” almost always combine both. *Figure: Diagram showing energy crossing a moving threshold to trigger a beat event — Onset detection watches energy against a moving average. It is complementary to the FFT, not a replacement.* #### What this means when you actually tune a scene Once you see the FFT as a row of bins, the editor controls stop being folklore: - **Sensitivity** scales how hard any band is allowed to push a control. Turn it down on a compressed master; turn it up on a quiet demo. - **Attack / release** (the [envelope](https://visualizers.novusstreamsolutions.com/glossary#envelope)) decide how fast a mapped value may change. Fast attack for percussion; long release for pads. - **Beat response** is the onset path, not the FFT path. If the kick is visible in Spectrum but invisible in Particles, look here before blaming the transform. Every engine in the [engine reference](https://visualizers.novusstreamsolutions.com/help/visualizers) reads some combination of those measurements. The reference publishes the live control table; this article is why those controls exist. If a term in the table is still opaque, jump back to the [glossary](https://visualizers.novusstreamsolutions.com/glossary) — FFT, bin, band, RMS, onset and envelope all have stable anchors there. #### Try it, then draw it Load a track in the [editor](https://visualizers.novusstreamsolutions.com/editor), watch a spectrum scene until you can point at the kick with your eyes, then switch engine without changing the song. When you are ready for the other half of “how audio visualizers work” — the actual pixels — continue with [How Canvas Paints an Audio Visualizer](https://visualizers.novusstreamsolutions.com/blog/how-canvas-paints-an-audio-visualizer). **Sources** - [W3C Web Audio API](https://www.w3.org/TR/webaudio/) - [MDN: AnalyserNode](https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode) - [MDN: AnalyserNode.getByteFrequencyData()](https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/getByteFrequencyData) --- ### One Composition, Two Editors: Multi-Layer Stacks, Graph Effects & Classic↔Studio Parity URL: https://visualizers.novusstreamsolutions.com/blog/studio-classic-multilayer-composition-parity Published: 2026-07-28 · Author: Novus Team · 10 min read How Novus keeps engine layers, geometry, logos, node-graph effects and audio bindings intact when you move a multi-layer composition between Creator Studio and the Classic editor. A single engine look is easy to move between tools. A **stack** — particles behind a spectrum, a logo crown in the center, a geometry matte, and a graph that routes bass into glow — is where most creative apps quietly lose fidelity. One editor flattens the graph. Another drops overlays after a second of playback. Suddenly the scene you built is not the scene that renders. Novus treats Classic and Studio as two views of the **same composition document**, not two exporters that approximate each other. This post explains what that document contains, how multi-layer stacks survive the Studio→Classic handoff, and how merge and effect nodes actually change the frame in both editors. #### One document, several surfaces When you save or hand off a project, Novus is not saving a screenshot. It stores the editable instructions needed to rebuild the frame: canvas size, engine layers and modes, geometry and logo layers, parameter base values, keyframes, audio bindings, modulation bindings, the node graph, timeline ranges and render settings. [Creator Studio](https://visualizers.novusstreamsolutions.com/studio) exposes layers, graph routing and timeline curves. The [Classic editor](https://visualizers.novusstreamsolutions.com/editor) is the guided customize-and-export surface. Both read and write that composition. *Figure: Diagram of stacked layers feeding a shared composition document used by Studio and Classic — Layers, graph and timeline are views of one document. Switching editors should not invent a second project.* > **Classic leaves what it cannot edit untouched** > If Classic does not show a graph editor, it still preserves the graph on the composition. Opening Studio again should restore the same nodes and connections rather than discarding them. #### What a multi-layer stack looks like in practice In Studio you can add more than one engine layer — for example a full-frame particle field under a spectrum, or a radial Logo Crown over a soft bloom. You can also add geometry, media, logo and text layers. Order, opacity, blend and visibility matter: the bottom of the stack is usually atmosphere; the top is the readable brand or lyric beat. - **Engine layers** — Particles, Spectrum, Waveform, Radial, Tunnel, Trails, Bars, Bloom and Character Motion, each with a mode and its own controls. - **Geometry layers** — 2D/3D shapes used as structure, mattes or focal frames rather than as a separate visualizer family. - **Logo and media layers** — brand marks and stills positioned with scale, glow and safe-zone awareness. - **Graph nodes** — audio-source, remap, math, envelope, LFO, random, merge, effect, feedback and output routes that modulate parameters over time. For the branding-centered case — a reactive ring that leaves room for a mark — start from Radial → Logo Crown or follow [Make a Logo Visualizer](https://visualizers.novusstreamsolutions.com/blog/make-a-logo-visualizer). For a first wired graph, [The Creator Studio Node Graph](https://visualizers.novusstreamsolutions.com/blog/studio-node-graph-first-composition) covers the beginner path; this post focuses on what has to stay true when that graph meets Classic. #### The Studio → Classic handoff Opening Classic from Studio ships the full `NovusComposition` through session storage rather than baking a reduced pack. Classic then projects engine layers into its overlay model and marks a single **classic primary** engine so the template controls stay unambiguous. Additional engine layers remain as overlays instead of disappearing after a beat of playback. 1. Build and audition the stack in Studio with live or sample audio. 2. Confirm layer visibility, order and which engine should be primary for Classic's guided controls. 3. Use **Open in Classic** (or export a `.novusvis` pack if you need a portable copy). 4. In Classic, verify every engine overlay is still present after several seconds of playback — not only on the first frame. 5. Export from Classic when captions, Beat FX, overlays or platform presets are the last mile. > **Primary is intentional** > If two engines both try to act as the sole primary, Classic can look like it is fighting itself. Keep one classic-primary engine and treat the rest as overlays so Dynamic Controls map to a stable target. #### Graph effects that actually evaluate Merge and effect nodes are not decorative shells. Studio evaluates the graph every preview frame; Classic runs the same evaluator against `composition.graph` during render. Modulation bindings resolve into layer parameters so an LFO or bass route can push glow, speed or thickness in both surfaces. - **Audio-source / remap / math / envelope / LFO / random** — shape continuous signals before they hit a control. - **Merge** — combine streams that should jointly drive a target instead of overwriting each other blindly. - **Effect** — glow, blur, mirror, shake, chromatic shift, color grade and trail persist applied as graph post-FX. - **Feedback** — carefully looped influence; the graph validator rejects cycles that would hang evaluation. Post-FX intensity is applied **once on a composite**, not independently on every overlay canvas. That keeps a three-engine stack from looking three times as blurry in Classic as it did in Studio. Engine-level glow and blur controls still feed the Canvas2D engines for per-layer look; the graph effects sit on top of the finished frame. *Figure: Signal chain from audio through graph nodes into engine parameters and a final composite effect pass — Audio → graph → parameters → engines → one composite effect pass. Same path in Studio preview and Classic playback.* #### Controls that must mean the same thing Parity fails when Studio exposes a knob the runtime ignores. Novus routes shared V3 catalog controls — speed, turbulence, sensitivity, `audioAmount`, `beatSyncAll`, geometry shape stamps, trail decay, baseline and peak hold — into `UnifiedCanvasEngine` so Inspector changes and Classic Dynamic Controls move the same drawing path. If you push speed and turbulence toward their limits in Studio, Classic should not silently reapply lifeless defaults. Audio bindings still use the same vocabulary as [Every Audio Reactivity Control, Explained](https://visualizers.novusstreamsolutions.com/blog/audio-reactivity-controls-explained): source, mapping range, attack, release, contribution and blend. Modulation bindings from the graph are applied in the same resolve step so a wired envelope is not Studio-only theatre. #### Portable packs still matter Session handoff is convenient on one machine. A `.novusvis` pack is the recoverable copy: composition, graph, bindings and layer order without depending on a particular browser tab. Export before a risky restructure, a collaboration pass or a long break. Re-import into either editor when you need the stack again. Durable cloud saving is covered in [Save Once, Create Everywhere](https://visualizers.novusstreamsolutions.com/blog/save-projects-across-devices-and-apps). #### A parity checklist before you export 1. Play the stack for at least ten seconds in Studio — confirm every layer and graph-driven motion is visible. 2. Open Classic and play again; overlays should remain after the first beat, not vanish. 3. Tweak a shared control (speed, glow, sensitivity) in Classic and confirm the canvas responds. 4. If you use effect nodes, compare intensity: Classic should match Studio's single composite pass, not stacked blurs. 5. Export a short clip or still; check logo safe zones and caption space with [Framing Your Visual](https://visualizers.novusstreamsolutions.com/blog/framing-safe-zones-and-aspect-ratios). The point of parity is creative confidence: build the ambitious version in Studio, finish platform details in Classic, and trust that particles-plus-spectrum-plus-logo is still particles-plus-spectrum-plus-logo when the export encoder starts. When you are ready to share a frozen revision, [publishing](https://visualizers.novusstreamsolutions.com/blog/private-draft-to-community-remix) captures that same composition document for the community without rewriting your private draft. --- ### Preview Before You Commit: Template Audio, Six-Mode Cycling & Logo Crown URL: https://visualizers.novusstreamsolutions.com/blog/template-audio-previews-mode-cycling-logo-crown Published: 2026-07-28 · Author: Novus Team · 9 min read How Novus template cards play real sample audio, cycle an engine's six modes on hover, and how Logo Crown turns a brand mark into a radial visualizer you can open in Studio or Classic. Choosing a visualizer from a still thumbnail is guessing. The motion that sells a look — a bass punch, a radial bar crown, a trail that dissipates and reforms — only appears when audio is moving the engine. Novus templates are built so you can **hear** the reaction before you commit to an edit session. This guide covers three product surfaces that work together: live template previews with copyright-safe sample audio, hover cycling through each engine's six modes, and the Logo Crown radial workflow for brand-centered scenes. Along the way it ties those previews to the same beat-sync controls you will tune later in the [Classic editor](https://visualizers.novusstreamsolutions.com/editor) or [Creator Studio](https://visualizers.novusstreamsolutions.com/studio). #### Why a still is not enough A static card can show color and silhouette, but it cannot show onset timing, trail decay or how aggressively a tunnel rushes on the kick. Earlier template detail pages could look like they were only gently pulsating because the preview used a synthetic audio frame — a beat-shaped pulse without a real track. That is useful for offline capture, but it is a poor audition of musical motion. Template detail previews now route through the same sample-audio path the Audio Library and hover cards use: a proxied, copyright-safe SoundHelix track selected for the engine. You get real FFT bands, waveform samples and beat onsets driving the V3 canvas, so Spectrum, Radial and Particles behave like they will with your own upload — just with a known demo song. > **Preview music is for auditioning, not for your release** > Sample tracks help you judge motion. Your export should use audio you own or have licensed. See [Free Preview Music, Copyright and Your Uploads](https://visualizers.novusstreamsolutions.com/blog/free-preview-music-and-licensing) for the boundary between platform libraries and Content ID. #### Hover previews and six-mode cycling On the [templates](https://visualizers.novusstreamsolutions.com/templates) grid, engine cards can start a live preview on hover (desktop) or when they enter the viewport on capable mobile devices. While the preview runs, Novus cycles the engine's **six modes** on a short interval so you see dust-storm versus orbit-swarm, or pulse-orb versus logo-crown, without opening six separate pages. - Each V3 family — Particles, Trails, Spectrum, Waveform, Radial, Tunnel, Bars, Bloom, Character Motion — ships six modes with distinct default overrides. - Mode pills on the detail page deep-link with `?mode=` so you can share or bookmark an exact look. - Companion modes stay within the same engine so you compare personality, not an unrelated family. - When you click through to Edit, the selected engine and mode become the starting composition rather than a generic default. *Figure: Grid of visualizer engine families each with multiple mode tiles — Nine engines, six modes each. Hover cycling is a fast way to audition the roster before you open the editor.* If you already know the genre fit you want, [The Right Visualizer Mode for Every Genre](https://visualizers.novusstreamsolutions.com/blog/visualizer-modes-by-genre) and [Meet the Novus Visualizer Engines](https://visualizers.novusstreamsolutions.com/blog/meet-the-nine-visualizer-engines) map families to musical jobs. Use the live preview when you need to confirm *this* mode's motion, not just its thumbnail color. #### What beat sync should look like in a preview A healthy preview is not a continuous zoom. Particles should spawn or shake on onsets, spectrum and bars should punch with bass energy, radial rays should deform with the FFT, tunnels should rush with low-end, and trails should accelerate or burst rather than drift forever. Shared controls — sensitivity, `audioAmount`, `beatSyncAll`, attack and release — feed every engine's energy helpers so the catalog knobs you see in Studio and Classic are the same knobs moving the canvas. - **Sensitivity** — how easily quiet material reaches a visible response. - **Audio amount** — how much of the drawing is driven by audio versus idle motion. - **Beat sync all** — a global emphasis so pulse, shake and onset paths stay engaged. - **Attack / release** — how quickly the response rises and falls after a hit. For the vocabulary of pulse, hits and shake, read [Beat Sync Explained](https://visualizers.novusstreamsolutions.com/blog/beat-sync-explained-pulse-hits-and-shake). For the full control strip, [Every Audio Reactivity Control, Explained](https://visualizers.novusstreamsolutions.com/blog/audio-reactivity-controls-explained) is the reference. #### Logo Crown: a radial built for a brand mark **Logo Crown** is the Radial mode that clears a center safe zone and draws frequency rays around it — a reactive EQ ring rather than a solid pulsing disc. On the templates side it appears as Radial → Logo Crown (`/templates/radial?mode=logo-crown`). In Studio you can add a logo layer on that cleared center; in Classic you can place `logoImage` with size and glow so the mark sits inside the crown. 1. Open Radial → Logo Crown from templates and let the sample audio drive the rays. 2. Click through to Studio or Classic with that mode selected. 3. Add or upload your logo; keep it inside the safe zone so bars never clip the mark. 4. Tune thickness, inner radius / center safe zone, sensitivity and colors until the crown reads at thumbnail size. 5. Optional: stack a soft particle or bloom layer underneath for atmosphere without covering the logo. > **The thumbnail test still wins** > Pause on a loud beat and shrink the preview. If the logo vanishes into glow or the rays look like noise, reduce bloom, thicken the mark, or pull the safe zone outward. [Make a Logo Visualizer](https://visualizers.novusstreamsolutions.com/blog/make-a-logo-visualizer) walks the branding checks in more detail. *Figure: Radial visualizer still showing a circular center suitable for a logo crown — Radial families are built for center-weighted branding. Logo Crown keeps that center readable while the spectrum lives on the ring.* #### From template audition to a real project Auditioning is not editing. Once a mode feels right, open it in an editor, replace the sample track with your song, and save. Guests can export immediately; signed-in creators get durable projects and the unified library. Multi-layer stacks that start from a template plus a second engine should follow the parity checklist in [One Composition, Two Editors](https://visualizers.novusstreamsolutions.com/blog/studio-classic-multilayer-composition-parity) so overlays survive the Studio↔Classic handoff. 1. Pick a family on [/templates](https://visualizers.novusstreamsolutions.com/templates) and watch the hover cycle through modes. 2. Open the detail page and play the sample-audio preview at 30 or 60 FPS labeling — judge motion, not just color. 3. Select the mode that matches the song's job (atmosphere, beat punctuation, brand ring, lyric/glyph field). 4. Edit in Classic for guided export or Studio for layers and graph routing. 5. Export platform sizes with [Export Settings for YouTube, Shorts, TikTok & Reels](https://visualizers.novusstreamsolutions.com/blog/export-settings-youtube-shorts-tiktok). #### Character text when the "logo" is a word Not every centerpiece is an image. Character Motion modes such as word-wave and glyph-field let you set `displayText` and `glyphSet` so letters themselves deform on the beat. Use that when the brand is a name, a drop, or a short lyric hook rather than a mark file. Keep the string short enough to read at mobile width, and bind deformation to mid or onset if bass-only warping makes the word illegible. Template previews, mode cycling and Logo Crown exist so you spend less time guessing and more time finishing. Hear the reaction, pick the mode, place the brand, then take the same composition into Studio or Classic knowing the audio path and the engine roster are already the ones your export will use. --- ### From Private Draft to Community Remix: Publishing on Novus URL: https://visualizers.novusstreamsolutions.com/blog/private-draft-to-community-remix Published: 2026-07-27 · Author: Novus Team · 9 min read How immutable publication, public preview derivatives, unlisted posts, attribution and remixing keep source projects private while ideas travel. Saving and publishing are intentionally different actions in Novus. Saving protects work for *you*. Publishing chooses one version to show *other people*. Nothing in your creator library becomes public because you added a title, uploaded a logo or signed in; a project reaches the community only after you open the publish flow and confirm it. That distinction makes the community useful without turning the editor into a social network that watches every draft. You can iterate privately for days, publish one strong version, keep changing the private project afterward, and know that the public post will not mutate underneath the people who saved or remixed it. #### Private by default means private until you act Projects, source audio, uploaded images, models, fonts and brand assets begin private. The community feed cannot browse your library, and another creator cannot open an editor from your private project ID. The **Publish immutable revision** action in the [creator library](https://visualizers.novusstreamsolutions.com/dashboard) is the boundary between those two worlds. > **A profile is not publication** > Creating a username, avatar or bio makes a creator identity; it does not expose your projects. Your profile shows community work only after you publish it. #### What publication freezes Publishing creates a new project revision whose kind is `published`, then points the community post at that exact revision. The frozen composition includes the layer order, engine modes, control values, graph, timeline, captions and referenced public-safe material needed to understand the work at that moment. - The post title, description and up to eight useful tags describe the release in search and feeds. - The selected project revision stays fixed even if the private working project reaches revision 40 later. - A separate renderer capture becomes the public preview; the private source asset is not repurposed as a public file. - The author, source post and remix relationship become durable attribution data rather than text someone can delete from a caption. *Figure: Diagram of one published visualizer revision becoming several attributed remix variations — One frozen source, several new editable copies. Remixing branches the work; it does not rewrite the original.* #### Why the preview is a separate file A public post needs something fast and safe to show in a feed, but the project may contain a full-resolution master, private audio, a licensed font or a model you never intended to distribute. The publish form therefore asks for a real renderer still and stores it as a **public preview derivative**. Community cards load that derivative, not the private project assets behind it. Choose a frame that represents the composition at its best: use a musically active moment, keep important geometry away from the crop edges, and confirm the logo or text is readable at card size. [Framing Your Visual](https://visualizers.novusstreamsolutions.com/blog/framing-safe-zones-and-aspect-ratios) covers the same thumbnail and safe-zone checks in depth. #### Public or unlisted A **public** post can appear in the community feed and search. An **unlisted** post has a shareable page but stays out of the public feed, which is useful for feedback, a client approval link or a portfolio piece you do not want indexed alongside open community work. Both choices are publication: use unlisted for controlled reach, not as a substitute for private storage. #### What people can do with a published post - **Like** to send a lightweight signal to the creator and help useful work surface. - **Save** to keep a reference in your own account without copying or editing the composition. - **Follow** the creator so their future public work is easier to find. - **Comment** with feedback that remains attached to the post rather than getting lost in a separate message thread. - **Remix** when the creator has published a composition you want to build on; Novus creates a new private project copy for you. - **Report or block** when content or interaction crosses the community guidelines. #### A remix is a copy with a memory Remixing reads the source's frozen revision, assigns the copy a new project ID and owner, and opens it as a private editable composition in the remixer's library. The new project starts from the published settings, but future edits belong to the remixer. The source post remains unchanged. The important part is attribution: the remix records where it came from, and a remix published later keeps that relationship. Attribution is structural, not a courtesy line someone has to remember to paste. It gives viewers a path back to the original and gives the original creator credit as an idea spreads. #### Prepare a project people can understand 1. **Name the idea, not the engine.** *Midnight Transit* tells people more than *Tunnel test 7*. 2. **Write a short description of the visual rule.** Mention the audio source, the motion idea and any central logo or lyric treatment. 3. **Use specific tags.** `ambient`, `radial`, `logo` and `bass` are useful; `cool` and `video` are not. 4. **Capture an honest preview.** Do not upload unrelated cover art or a frame the composition cannot actually produce. 5. **Test the frozen version.** Save, reopen and export the project before publishing so the community is not your first regression test. > **Publish the readable version** > A community preview is small. Pull back excessive glow and motion echo, check the busiest beat, and choose a frame with a recognizable silhouette. The best editor preview is not always the best feed card. #### Rights and private source material still matter Publishing a visualizer does not grant rights to the music, images, models, lyrics, fonts or trademarks inside it. Use material you own, have licensed, or are allowed to share. A private audio master may remain private, but the public preview and description still need to respect the rights of everyone represented in them. If you want a track that is safe for demonstrations, the [Audio Library](https://visualizers.novusstreamsolutions.com/audio-library) is the simplest starting point. For the difference between platform libraries, Content ID and music baked into an export, read [Free Preview Music, Copyright and Your Uploads](https://visualizers.novusstreamsolutions.com/blog/free-preview-music-and-licensing). #### Reporting, blocking and moderation Community tools include reporting for posts, comments and behavior, blocking controls, creator visibility choices and moderation records. Reports are reviewed against the [Community Guidelines](https://visualizers.novusstreamsolutions.com/community-guidelines); privileged actions are audited. Blocking is for controlling your own experience, while reporting is for material the moderation team should evaluate for everyone. #### Updating a public idea without rewriting history Because a published revision is immutable, improving the private project does not silently replace what earlier viewers saw or what a remix used. Make the changes in your library, save them as a new revision, and publish a new post when the update deserves its own public moment. The old post remains an accurate record of the version people originally reacted to. That model is the core of the Novus community: private work until you choose otherwise, stable references after you publish, and editable copies when inspiration becomes a remix. If you still need to make the project durable before sharing it, start with [Save Once, Create Everywhere](https://visualizers.novusstreamsolutions.com/blog/save-projects-across-devices-and-apps); when you are ready, open the [community](https://visualizers.novusstreamsolutions.com/community) to see how other creators describe and present their work. --- ### Save Once, Create Everywhere: Projects, Autosave & the Unified Novus Library URL: https://visualizers.novusstreamsolutions.com/blog/save-projects-across-devices-and-apps Published: 2026-07-27 · Author: Novus Team · 10 min read How guest sessions, signed-in autosave, revision conflicts, private assets and the unified library work together to keep your Novus projects recoverable. A creative tool earns trust in a very simple way: when you come back, your work is still there. That sounds obvious until a browser tab crashes, site data gets cleared, or you open a different device and discover that the version in front of you is not the version you finished last night. Novus is deliberately **guest-first** for making and exporting, but durable saving is account-based. That split keeps the first session fast and private while giving longer projects a proper home when you decide they matter. This guide explains exactly where each kind of work lives, what autosave is doing, and how to keep a recoverable copy at every stage. #### Guest creation and durable saving are different promises You can open the [Classic editor](https://visualizers.novusstreamsolutions.com/editor), [Creator Studio](https://visualizers.novusstreamsolutions.com/studio), lyric tools, cover and Canvas tools, or SFX tools without creating an account. Your source media stays in the browser while you work, and you can export a finished file as a guest. That is the shortest path from an idea to a deliverable. A guest session is not a cross-device project library. Browser storage belongs to that browser profile, can be limited in private browsing, and disappears when site data is cleared. Signing in is the point where a composition becomes a durable Turso-backed project with an owner, a revision number and a place in your creator library. > **Save is the boundary** > If you are experimenting, staying a guest is fine. If you would be upset to rebuild the project, save it to an account or export a `.novusvis` copy before you close the session. #### What a saved visualizer project actually contains Novus does not save a screenshot of the canvas. It saves the **composition document**: the editable instructions needed to rebuild the same frame. That is why a saved project can reopen in either editor without flattening your work into a video. - Canvas size, aspect ratio, frame rate, background, camera, lighting and quality choices. - Engine, geometry, media, logo, text, lyric, group, mask and effect layers in their exact order. - Every control's base value, keyframes and audio bindings — including attack, release, mapping range and contribution. - The node graph, validated connections, timeline ranges, markers, transitions and loop points. - Asset references and render settings, without embedding temporary browser Blob URLs into the document. *Figure: Diagram showing one composition shared by the canvas, layers, graph, inspector and timeline — One document, several views. The editors change the same composition rather than maintaining separate copies of it.* #### Reading the autosave status Once a signed-in project has a cloud identity, edits are debounced so dragging a control does not write to the database sixty times a second. Novus waits briefly for the burst of editing to settle, then saves the newest composition. It also flushes when the page is hidden and retries when the browser comes back online. - **Saving** — a validated project update is in flight. Keep the tab open until it resolves. - **Saved** — the server accepted the latest revision token and returned the next one. - **Offline** — the browser cannot reach the save endpoint; the editor keeps your current in-memory work and retries after reconnecting. - **Conflict** — another tab or device saved a newer revision first. Novus refuses to overwrite it silently. - **Failed** — validation or the save request failed. Use manual save again after checking the message, and export a pack if the problem persists. #### Why revision conflicts are a feature Every successful save replaces the project's revision token. The next write must present that exact token. If two devices start from revision 12 and one saves revision 13, the other device's old token is rejected instead of turning revision 13 back into yesterday's work. That rejection is the conflict state. When you see a conflict, do not keep editing blindly. Export the current composition as a `.novusvis` pack, open the latest cloud version in a fresh tab, and decide which changes to keep. The pack turns a scary overwrite decision into an ordinary comparison with two intact copies. #### Autosaves, manual saves and milestones High-frequency autosaves update the current project efficiently; they are not intended to become an endless undo archive. A **manual save** is the explicit checkpoint you make before a risky edit or when you finish a session. A **milestone** is the named version worth remembering — for example *logo lockup approved* or *vertical mix ready*. Those deliberate revisions are retained separately from routine autosave traffic. #### Classic and Studio open the same work The [Classic editor](https://visualizers.novusstreamsolutions.com/editor) is the fast, guided view of the document; [Creator Studio](https://visualizers.novusstreamsolutions.com/studio) exposes layers, graph routing, timeline curves, rigging and deeper geometry. Switching between them does not convert the project into a reduced format. Classic leaves graph data it cannot edit untouched, and Studio reads the same engine controls and layer order. > **Use the simplest surface that can finish the job** > Make fast palette, mode and export changes in Classic. Open the same project in Studio when you need multi-layer timing, a custom audio route or path editing. The save belongs to the project, not to one editor. #### Uploaded audio is a separate choice A composition and its source audio have different privacy and storage costs. The project document is small enough to save routinely. A master WAV can be hundreds of megabytes, so Novus asks whether the audio should join the private cloud project. If you decline, the project keeps its fingerprint, trim and analysis metadata but another device will ask you to reattach the matching track. If you opt in, the source file is stored as a private Blob asset and referenced by ID. Community pages never receive that private master; publication uses a separate preview derivative. You can make the storage decision per project rather than accepting one permanent rule for every song. #### One library for every Novus output The [creator library](https://visualizers.novusstreamsolutions.com/dashboard) is broader than visualizer projects. Its purpose is to keep the pieces of a release together even when they came from different Novus tools. - Visualizer compositions from Classic or Studio. - Lyric videos and caption-led projects. - Cover art and short Canvas loops. - Saved SFX presets and reusable audio ideas. - Brand kits and platform-specific release variants. That shared library is what makes *save once, create everywhere* practical: a logo, palette, SFX preset or project variant can stay attached to your account instead of becoming an unnamed download scattered across devices. #### A recovery-minded workflow 1. Start as a guest if you want; sign in before the project becomes expensive to recreate. Saving after login claims the current composition instead of making you start over. 2. Wait for **Saved** before closing a device or opening the same project somewhere else. 3. Create a manual checkpoint before restructuring layers, replacing audio or rebuilding the graph. 4. Export a `.novusvis` pack before a major migration, collaboration handoff or long break. 5. Keep at least one recovery code offline or register a passkey. Novus has no email reset link, so account recovery depends on the methods you control. The goal is not to make you think about storage every five minutes. It is to give each stage the right safety net: a lightweight guest session for trying ideas, revision-aware cloud saving for real projects, and a portable pack when you want a copy that answers only to you. When the project is ready for other people, the next step is explicit rather than automatic — [publishing an immutable community revision](https://visualizers.novusstreamsolutions.com/blog/private-draft-to-community-remix). --- ### Every Audio Reactivity Control, Explained: Source, Dynamics, Attack and Beat Response URL: https://visualizers.novusstreamsolutions.com/blog/audio-reactivity-controls-explained Published: 2026-07-26 · Author: Novus Team · 9 min read The Audio panel is a signal chain, not a pile of sliders. Here is what each control does, the order they apply in, and how to fix a visual that pulses instead of reacting. There is a specific kind of disappointment that hits when a visualizer *technically* reacts to your track but does not feel like it. Everything on screen swells and shrinks together, in time with nothing in particular, and no amount of dragging sliders seems to fix it. The usual reaction is to turn something up. The usual result is that it swells harder. The fix is almost never one control. The Audio panel is a **signal chain** — a series of stages that each transform the last one's output before the number ever reaches the picture. Once you know the order, the panel stops being guesswork, because you can tell which stage is flattening your track and go straight there. *Figure: Diagram of the audio signal chain from source selection through envelope to the rendered frame — Source → contribution → dynamics → sensitivity → envelope. Every stage runs in this order, every frame.* #### Stage 1 — Primary audio source **Primary audio source** picks which measurement drives the engine. Three of the options are frequency bands — `bass`, `mid` and `treble` — and the rest are whole-signal measurements: `rms` (average loudness), `peak` (the loudest sample in the window), `onset` (how sharply the sound just changed), `beat` (how strongly a beat is landing right now) and `bpm-phase` (a smooth sweep that completes exactly once per beat). This is the single highest-leverage control in the panel and the one most people never touch. A kick-driven house track wants `bass`. A vocal-forward pop mix usually reads better on `mid`, because the vocal is where the emotional movement lives and the bass is a steady four-on-the-floor that produces steady, boring motion. Hi-hat-heavy trap benefits from `treble`. And `bpm-phase` is the odd one out: it ignores loudness entirely and just sweeps in time, which is exactly what you want for motion that must stay perfectly metronomic regardless of how the mix is behaving. > **The two-minute source audition** > Load your track, then step the source through `bass`, `mid` and `treble` while a busy section plays. You will usually know within a few seconds which one is moving with the part of the song you care about. Everything else in the panel is fine-tuning on top of that choice. #### Stage 2 — Audio contribution and Audio dynamics **Audio contribution** caps how much of the visual the audio is allowed to control, from 0 to 1. At 0 the scene ignores your track and idles on its own motion; at 1 the audio drives it as hard as the engine allows. Most catalog scenes ship somewhere between 0.55 and 0.9, tuned per mode. **Audio dynamics** is the one to reach for when a scene feels twitchy rather than under-reactive. Instead of scaling the signal, it scales the signal's *movement around its resting level*. At 1 you get the full swing of the track. At 0 the band holds steady, so the scene stays lit and present but stops jumping — the calm, constant look that suits an ambient or lo-fi backdrop where the visual should not compete with the music. Turning dynamics down is very different from turning contribution down: contribution dims the visual, dynamics only settles it. #### Stage 3 — Sensitivity **Sensitivity** is a straight gain stage from 0 to 3, applied after the routing above. It is the right control for a quiet master that is not driving the visual hard enough, or a brickwalled one that pins everything at maximum. Unlike source and dynamics, it changes nothing about *what* the visual responds to — only how much. Reach for it last, once the source is right. #### Stage 4 — Audio attack and Audio release These two are the reason a good visualizer feels *musical* rather than merely synchronized. **Audio attack** (in milliseconds) is how fast the visual rises when the sound gets louder. **Audio release** is how slowly it falls back when the sound goes away. Together they are an envelope follower, the same idea as a compressor's attack and release. - **Short attack, short release** (say 10 ms / 80 ms) — snappy and percussive. Every hit registers. Great for drums, punishing on a sustained pad. - **Short attack, long release** (20 ms / 600 ms) — hits land instantly then bloom outward and fade. This is the setting that reads as *expensive* on most material. - **Long attack, long release** (300 ms / 1200 ms) — slow breathing. The visual follows the arrangement rather than individual hits. Ideal for ambient, cinematic and lo-fi. If a scene looks jittery, the answer is usually a longer release, not less audio. Jitter is the visual falling all the way back to zero between hits; a longer release keeps it aloft so the next hit builds on the last. #### The beat layer runs alongside all of it Everything above describes a *continuous* signal. Beats are different: they are discrete events, and they get their own set of controls that add on top. - **Beat sync all** — the master switch. Off, the scene runs purely on the continuous envelope and ignores beats entirely. - **Beat response** — how hard every engine hits on each detected beat, 0 to 2. - **Pulse intensity** — scales the beat pulse where it feeds spawn rates, element size and shake. - **Beat shake** — a frame kick on each beat. A little is punchy; a lot is a music video from 2009. It settles between beats rather than jittering continuously. *Figure: Diagram showing discrete beat events layered over a continuous audio envelope — The beat layer adds discrete hits on top of the continuous envelope — they are separate systems, tuned separately.* [Beat Sync Explained](https://visualizers.novusstreamsolutions.com/blog/beat-sync-explained-pulse-hits-and-shake) goes deeper on this half of the panel, including how to tell a genuine beat from a busy bassline. #### Spectrum range: the control nobody expects to need On the engines that draw the frequency spectrum — Spectrum, Bars, Radial, Bloom and Tunnel — **Spectrum range** decides how much of the frequency axis the visual actually spans. It defaults to 0.86 rather than 1 for a reason: the very top of the frequency range is near-silent air on most masters, so at 1 the right-hand slice of every bar field and ray fan barely moves. That dead tail is a common cause of the complaint that a spectrum looks *smooth and similar all the way across*. Pull the range down and the visible bars redistribute across frequencies your track actually contains. *Figure: Diagram of frequency bands across the spectrum with the near-silent upper range highlighted — The top of the FFT is mostly air. Spectrum range trims it so the visible width carries real signal.* #### A diagnostic order that works When a scene is not reacting the way you want, work down the chain in order rather than poking at whatever slider is nearest: 1. **Is it reacting to the right thing?** Change Primary audio source. This fixes more problems than every other control combined. 2. **Is it reacting too uniformly?** Lower Audio dynamics for calm, or raise it for swing. 3. **Is it reacting hard enough?** Raise Sensitivity. 4. **Does it feel twitchy or dead between hits?** Lengthen Audio release. 5. **Do the beats land?** Raise Beat response; if beats feel absent entirely, confirm Beat sync all is on. 6. **Does the spectrum look flat on one side?** Lower Spectrum range. > **Bars is the deliberate exception** > The Bars engine does not offer Primary audio source, Audio contribution or Audio dynamics, and that is on purpose rather than an oversight. Bars is a full-spectrum readout — every bar *is* its own frequency band — so selecting a single band to drive the whole thing is meaningless. Sensitivity and the attack/release ballistics do apply, and they are what give the bars their meter-like rise and fall. #### Where to try this Every control here appears in both editors, on the same engines, with the same names — the [Classic editor](https://visualizers.novusstreamsolutions.com/editor) groups them in the Audio panel, and [Creator Studio](https://visualizers.novusstreamsolutions.com/studio) exposes them per layer in the inspector. Load a track you know well, pick a busy section, and step through the chain in the order above. New to the engines themselves? [Meet the Novus Visualizer Engines](https://visualizers.novusstreamsolutions.com/blog/meet-the-nine-visualizer-engines) is the tour, and [How Music Visualizers Work](https://visualizers.novusstreamsolutions.com/blog/how-music-visualizers-work) covers the theory these controls sit on top of. --- ### Framing Your Visual: Safe Zones, Frame Margin and Aspect Ratios URL: https://visualizers.novusstreamsolutions.com/blog/framing-safe-zones-and-aspect-ratios Published: 2026-07-26 · Author: Novus Team · 8 min read Why content drifts off the edge when a track gets loud, what Frame margin and Logo safe zone actually reserve, and how to compose for 16:9, 9:16 and 1:1. Here is a failure mode that is easy to miss and painful to discover after export: a scene that is beautifully composed at rest, and then the chorus hits and half of it slides off the top of the frame. You do not catch it in a still. You do not catch it while scrubbing the quiet intro. You catch it when someone watches the finished video. The cause is structural rather than a matter of taste. Audio-reactive geometry is, almost by definition, a size multiplied by a loudness number — and a loudness number does not know where the edge of your frame is. This post covers the controls that put a boundary on that, and how to compose for each aspect ratio so the boundary rarely matters. #### Frame margin: breathing room the audio cannot eat **Frame margin** reserves a strip around the edge of the frame that audio-driven geometry is not allowed to grow into. It defaults to a small 3.5% — enough that shapes stop short of the pixel edge, because geometry that ends exactly on the boundary reads as *cropped* even when every pixel is technically in frame. The limiting is soft rather than a hard cut-off, and that distinction matters more than it sounds. A hard clamp would flatten every peak above the limit to the same size, so the loudest passage of your track — the part you most want to land — would be the one place the visual stops responding. A soft limit leaves everything below the boundary exactly where it was and only compresses as it approaches, so louder always reads as bigger, forever. Raise the margin when you are placing text or a logo over the scene and want a guaranteed clear border. Drop it toward 0 when you want an edge-to-edge, full-bleed look. It appears on the engines whose geometry is center-anchored and can grow outward — Bloom, Character Motion, Radial, Spectrum, Bars and Waveform. > **Geometry scale is deliberately exempt** > Frame margin governs what the AUDIO does, not what you ask for. Geometry scale still zooms the whole composition past the frame edge if you set it to — because sometimes bleeding off-screen is the design. The rule is that your choices override the boundary and the track's loudness does not. #### Logo safe zone: the hole in the middle The Radial engine's **Logo safe zone** does the opposite job: instead of reserving the outside, it reserves the *center*, so a ring of rays or bars automatically arranges itself around whatever you are putting in the middle. **Inner radius** and **Outer radius** then set where the reactive geometry starts and stops. The practical workflow is to set the safe zone slightly larger than your logo actually needs. Rays grow on beats, and a zone sized to the logo exactly will have geometry brushing the artwork on every hit. A little extra clearance is the difference between a logo that sits confidently inside a reactive ring and one that keeps getting elbowed. [Make a Logo Visualizer](https://visualizers.novusstreamsolutions.com/blog/make-a-logo-visualizer) walks the whole build. #### Vertical anchor and where a spectrum sits The Spectrum engine's **Vertical anchor** decides where its baseline sits: `bottom` (the default, matching Bars), `center` for symmetric and mirrored looks, or `low` for a baseline that floats slightly above the bottom edge. The choice is not just aesthetic — it determines how much headroom a full-scale peak has to grow into. A center-anchored spectrum has half the frame in each direction; a bottom-anchored one has the whole frame above it, which is why it is the default for anything with a loud master. *Figure: Diagram comparing 16:9, 9:16 and 1:1 framing for a visualizer scene — The same scene in three shapes. Compose for the destination — a wide scene cropped vertical loses the interesting two-thirds.* #### Composing for each aspect ratio Aspect ratio is a composition decision made *before* you design, not an export toggle applied after. Each shape rewards a different arrangement: - **16:9 (YouTube, desktop)** — width is cheap and height is scarce. Full-width engines shine here: Spectrum, Bars, Waveform. Radial and Bloom work too but leave large empty margins left and right, which is a feature if you are putting text there and a problem if you are not. - **9:16 (Shorts, Reels, TikTok, Canvas)** — height is cheap and width is scarce. Center-anchored engines win: Radial, Bloom, Tunnel, Particles. A wide bar field in a vertical frame becomes a thin strip across the middle with dead space above and below. - **1:1 (feed posts, cover art)** — the most forgiving shape, and the one where center-anchored geometry looks most intentional, since the frame's inscribed circle is the whole frame. #### Leave room for the platform's own interface Vertical platforms draw their own chrome over your video: captions, the username, a like-and-share column down the right side, and a progress bar at the bottom. That furniture routinely covers the bottom fifth and a strip down the right edge. Nothing you put there is reliably visible, so treat those regions as decoration rather than as places for a logo, a title or the moment you most want people to see. > **The loud-section check** > Before exporting, scrub to the loudest part of the track — the drop, the final chorus, whatever peaks hardest — and watch there rather than at the intro. That is the frame where content leaves frame if it is going to. Thirty seconds of checking beats re-rendering a full track. #### Set it once, reuse it Framing decisions are the most portable part of a setup. A margin, a safe zone and an anchor that work for your 9:16 output will keep working across every track you make in that shape, on any engine. Lock them in when you first build a vertical or square recipe and you stop rediscovering the same problem. For the numbers on the export side — resolution, frame rate and what each platform re-encodes — see [Export Settings for YouTube, Shorts, TikTok & Reels](https://visualizers.novusstreamsolutions.com/blog/export-settings-youtube-shorts-tiktok). To go from a template to a finished file in one sitting, [From Template to Finished Export in Ten Minutes](https://visualizers.novusstreamsolutions.com/blog/template-to-export-in-ten-minutes) is the short path, and you can start from any scene in [the gallery](https://visualizers.novusstreamsolutions.com/templates). --- ### The Style System: Color Modes, Glow and Effects That Work on Every Engine URL: https://visualizers.novusstreamsolutions.com/blog/style-system-color-modes-glow-and-effects Published: 2026-07-26 · Author: Novus Team · 8 min read Color mode, glow, blur, chromatic aberration and motion echo apply the same way across all ten engines. Here is what each one does and the order they composite in. Two producers can pick the same engine, the same mode and the same track and end up with videos that look nothing alike. The difference is almost never the engine — it is the handful of style and effect controls that sit on top of it. Those controls are shared: every one of the ten engines gets the same palette, the same color modes and the same effects stack, which means a look you develop once transfers everywhere. That is worth more than it sounds. Build a palette and effects recipe for one release, and you can move it onto a different engine for the next track and keep the identity intact while the motion changes completely. #### Two colors, three ways to use them Every engine exposes **Primary color**, **Secondary color** and **Background**. What changes is how the two foreground colors get distributed, and that is **Color mode**: - **Duo** — elements alternate between primary and secondary. High contrast, graphic, reads clearly at thumbnail size. The safest choice for branded work because your two brand colors stay literally your two brand colors. - **Gradient** — elements blend from primary to secondary across the composition. Softer and more cohesive; good for anything that should feel continuous rather than sequenced. - **Spectrum** — a full hue sweep across the elements, ignoring your two colors entirely. This is the rainbow reference look. Striking, and completely off-brand if you have a palette, so use it deliberately. > **Pick the background first** > Background is not just backdrop — the glow pass measures its brightness and fades additive glow out on light backgrounds, because additive light on a bright field is invisible anyway. If you want heavy glow, you want a dark background. If you want a light, airy, print-like look, expect to carry it with color and shape rather than glow. #### The effects stack, in the order it composites The effects are not per-element filters — they are **full-frame passes applied after the engine finishes drawing**, in a fixed order. That is why they cost almost nothing and why they look uniform across a whole scene instead of haloing individual shapes unevenly. Knowing the order tells you why some combinations fight each other. *Figure: Diagram of the post-processing stack: draw, then blur, glow, chromatic aberration and motion echo — Draw the frame, then blur, then glow, then chromatic split. Motion echo carries what is left into the next frame.* 1. **Blur** — a single defocus pass that mixes a blurred copy of the frame back over the sharp one. Small amounts add a soft, filmic bloom to edges; large amounts turn the scene into abstract light, which is a legitimate look for backdrops behind text. 2. **Glow** and **Global glow** — the emissive halo. Glow drives the effect; Global glow adds a shared emissive floor across the whole frame. Both feed one additive blurred blit, so they compound rather than layering separately. 3. **Chromatic aberration** — splits the frame into offset color copies, the lens-fringing look. It also breathes with the beat, so a small amount reads as energy rather than as a static filter. A little goes a long way; past about 0.3 it stops reading as a lens and starts reading as a broken display. 4. **Motion echo** — the odd one out, because it works *between* frames rather than within one. It holds back part of the previous frame instead of clearing it, so movement leaves trails. This is how you turn a sparse scene into a dense one without adding a single element. #### Motion echo is the highest-impact control here If you change one effect, change this one. At 0 every frame starts clean and the scene shows only what is happening right now. Push it up and the scene accumulates: particle paths become ribbons, a rotating ring becomes a spirograph, a bouncing bar field becomes a light-painting. Several catalog modes ship with it high on purpose — that is what makes Echo Streaks and Orbit Trace look the way they do. It has one real hazard: echo and glow multiply. Persistence keeps a fraction of every frame, and glow makes what is kept brighter, so at high settings the frame can climb toward white. The renderer damps glow automatically when echo is high to keep that from running away, but if a scene is blowing out, echo and glow together are the first place to look. *Figure: A Trails engine scene where motion echo turns moving strands into long persistent ribbons — Trails with motion echo high — the same strands, but every frame's path stays on screen.* #### Geometry: the shape of the thing itself **Geometry** changes the primitive an engine stamps — circle, ellipse, line, polygon, star, square, triangle, rounded rectangle or soft glow. On a particle field this is the difference between dust (`circle`), snow (`soft-glow`), sparks (`line`) and confetti (`square`). It applies wherever an engine stamps discrete elements, which is Particles, Trails and Tunnel; the engines that draw continuous strokes use **Thickness** instead. **Geometry scale** zooms the entire composition around the frame center. It is deliberately the one control that is allowed to push content past the frame edges, so if you want a scene to bleed off-screen — a huge tunnel mouth, a ring that overflows behind a logo — this is the control that will let you. #### Building a reusable recipe A house style is usually about five decisions: background, two colors, a color mode, a glow level and an echo level. Write them down once. Then when you start the next track, set those five first and choose the engine second — the release will hang together even though every video moves differently. > **Check it at thumbnail size** > Heavy glow and heavy echo both reduce contrast, and contrast is what survives being scaled down to a feed thumbnail. Shrink your preview to about the size of a postage stamp before you commit. If the shapes disappear into a haze, pull glow back rather than pushing colors harder. #### Where this fits with the rest These controls live in the Style, Geometry and Effects groups in the [Classic editor](https://visualizers.novusstreamsolutions.com/editor), and per-layer in [Creator Studio](https://visualizers.novusstreamsolutions.com/studio) — same keys, same behaviour, so a look moves between them intact. For carrying that identity onto cover art and a Canvas loop, [Designing Cover Art & Spotify Canvas Loops](https://visualizers.novusstreamsolutions.com/blog/cover-art-and-spotify-canvas-branding) picks up where this leaves off; for choosing the engine underneath it, start from [Meet the Novus Visualizer Engines](https://visualizers.novusstreamsolutions.com/blog/meet-the-nine-visualizer-engines). --- ### Free Preview Music, Copyright and Your Uploads: What Is Actually Safe URL: https://visualizers.novusstreamsolutions.com/blog/free-preview-music-and-licensing Published: 2026-07-24 · Author: Novus Team · 7 min read Where the free preview loops come from, what music is safe to publish in your own video, and what copyright actually means on YouTube and TikTok. Two different questions hide inside “can I use this music?” — *what is that music playing on the template pages*, and *what music can I put in my own video?* The first has a one-paragraph answer. The second is where channels get protected, so it deserves the plain-language version: no scare tactics, and no myths. > **The honest disclaimer** > This article is general information about how music rights and platform enforcement work — it is not legal advice. When real money, labels or contracts are involved, talk to a music attorney. #### The preview loops: ours, on purpose Every [template page](https://visualizers.novusstreamsolutions.com/templates) plays music the moment it loads — one of three short loops at 124, 92 and 140 BPM. All three were composed and synthesized in-house at Novus, and Novus owns them outright. They exist for exactly one job: letting you judge how a scene reacts to real audio, at three different tempos, without uploading anything first. They are preview music, full stop. When you export a video, the file contains only the track *you* uploaded — the preview loops never end up in your export. There is no leftover Novus audio to trigger a claim, and nothing you need to license from us. The rights question in your finished video is entirely about your own track. *Figure: Diagram showing preview audio and uploaded audio taking separate paths, with only the upload reaching the export — Preview loops live on template pages only. The export pipeline renders the track you upload — and nothing else.* #### Your video, your track, your rights For most Novus users this resolves instantly: you are visualizing music you made, so you hold the rights and you are done. The same goes for commissioned beats or mixes where your agreement covers releasing the result online. It only gets involved when the music is someone else's. A song carries two separate rights — the **composition** (the written song) and the **master** (the specific recording) — and publishing a video with a track baked in generally needs permission on both sides. That is why “I found it on SoundCloud” and “my friend sent me the MP3” are not answers: possessing a file has never included permission to republish it. #### What actually happens on YouTube YouTube scans uploads with Content ID, an automated audio-matching system that rights holders feed with their catalogs. When it matches your audio, the usual outcome is a *claim*, not a punishment: the video typically stays up, ad revenue routes to the rights holder, and some tracks trigger regional blocks or muting instead. A claim by itself does not damage your channel. Strikes are the more serious tier, and they come from actual takedown requests rather than automatic matches. Most creators who use unlicensed music never see one — what they see is every upload quietly monetizing someone else's catalog. If you are building a music channel, that alone is the argument for keeping uploads clean: the entire point is for your work to pay *you*. #### TikTok and Instagram are a different deal Short-form apps license huge music libraries — for sounds you add *inside the app*. That licensing does not cover audio baked into a file you upload, and a visualizer is by definition audio baked into a file. Post a visualizer of an unlicensed commercial track and the platform can mute, restrict or remove it on match, just as YouTube would. Business and commercial accounts get an even narrower approved library. The rule of thumb is the same everywhere: if the music is inside your video file, the license has to be yours. #### Myths that will not save an upload - **“Under eight seconds is fine.”** No duration is automatically safe — not eight seconds, not fifteen, not thirty. Content ID routinely matches shorter clips, and copyright law has no stopwatch exemption. - **“I credited the artist.”** Credit is courtesy, not a license. Attribution changes nothing about permission — except where a license you already hold requires it. - **“My channel isn't monetized, so it's fair use.”** Fair use is a narrow, case-by-case legal defense argued after the fact, not a checkbox — and “I made no money” is not the deciding factor. - **“I bought the song.”** A download or streaming subscription licenses listening, not republishing the recording inside your own video. - **“I'm too small to notice.”** Matching is automated and does not check subscriber counts. Small channels get claimed on day one all the time. #### Music that is genuinely safe to publish - **Your own music** — the core Novus use case, and the cleanest possible position. - **Commissioned music** with a written agreement covering online video and monetization. - **Library and subscription music**, provided the license covers your platforms and monetization. “Royalty-free” means no per-use fees — it does not mean no rules, so read the scope. - **Creative Commons tracks**, if you honor the exact license: attribution where required, and note that NC (non-commercial) variants clash with monetized channels. - **Direct written permission** from whoever holds the rights — remembering the composition/master split means it can be two whoevers. #### The bottom line Novus keeps its side simple by design: previews demo with music we own, your export carries only your audio, and the file it writes is free, watermark-free and entirely yours. Publish music you have the rights to and there is nothing else to manage. Pick a scene in the [gallery](https://visualizers.novusstreamsolutions.com/templates), bring your own track into the [editor](https://visualizers.novusstreamsolutions.com/editor) — and if a rights question ever feels bigger than a blog post, it probably is, and an hour with a professional is cheap insurance. More quick answers live in the [FAQ](https://visualizers.novusstreamsolutions.com/faq). --- ### Making Music Visualizers on Your Phone: The Full Mobile Workflow URL: https://visualizers.novusstreamsolutions.com/blog/mobile-visualizer-workflow Published: 2026-07-24 · Author: Novus Team · 7 min read Touch editing in Classic, capability-aware 1080p exports and vertical-first mode picks — the full phone workflow, plus when a desktop is worth it. There is no Novus app, and that is the point: the entire pipeline — browsing templates, editing, rendering video — runs in a phone browser. If your music already lives on your phone, the video can be made where the music is, start to finish, and the result is a real 1080p file with no watermark. Here is the workflow that makes phone-made visualizers genuinely good, plus the honest list of moments when a desktop earns its keep. #### What a phone does well Everything in the core path is touch-native. The [template gallery](https://visualizers.novusstreamsolutions.com/templates) previews scenes as you browse, template pages let you tap through all six modes of an engine while a built-in loop plays, and the [Classic editor](https://visualizers.novusstreamsolutions.com/editor) — the guided one — works comfortably under a thumb: pick a template, upload a track from your files, adjust the shared controls (**Color Mode**, **Beat Response**, **Pulse Intensity**, **Shake Amount**, **Rotation Speed**, glow) and export. The upload step is friendlier than people expect. Any audio file your phone can open, the editor can analyze — a bounce sent over from a laptop, a download from your distributor, a demo straight out of a voice-memo app. Analysis runs on-device in the browser, so there is no upload wait and no server round-trip before the scene starts moving to your track. A phone export lands at 1080p, as MP4 or WebM, with the same deterministic beat sync as a desktop render — the file matches the preview exactly, regardless of which device drew it. Determinism matters more on mobile than anywhere else: you never have to wonder whether a mid-render notification or a throttled frame quietly shifted a beat, because it cannot. #### Why phones cap at 1080p — and why it rarely matters The exporter is capability-aware: it looks at the device it is running on and offers what that device can render well. Producing a visualizer means drawing and encoding every single frame in the browser — heavy, sustained work — and a 4K encode that a desktop shrugs off would push a phone straight into thermal throttling. So phones cap at 1080p and desktops go up to 4K. Here is why the cap rarely costs you anything: vertical platforms deliver at 1080×1920. A Short, a TikTok or a Reel made on a phone is already at full delivery resolution — a 4K desktop render of the same vertical video would be downscaled right back on upload. The device in your pocket exports exactly what the phone-first platforms want; the 4K case is really the widescreen-YouTube case. *Figure: Diagram of vertical, square and widescreen video frames — Phone-made visualizers are usually phone-watched visualizers — compose vertical, centered and bold.* #### A vertical-first workflow that reads on a small screen Your video will mostly be watched on phones, so let the phone be the taste test. Favor bold, center-anchored modes that survive a six-inch screen: [Pulse Orb](https://visualizers.novusstreamsolutions.com/templates/radial?mode=pulse-orb), [Radial Bars](https://visualizers.novusstreamsolutions.com/templates/bars?mode=radial-bars), a [mirrored waveform](https://visualizers.novusstreamsolutions.com/templates/waveform?mode=mirrored) and [Particle Vortex](https://visualizers.novusstreamsolutions.com/templates/tunnel?mode=particle-vortex) all hold up at glance distance, while intricate fine-detail looks tend to flatten out at feed size. Three small-screen rules of thumb: a high-contrast duo Color Mode beats a subtle gradient once the video shrinks to feed size; if you use [Word Wave](https://visualizers.novusstreamsolutions.com/templates/character-motion?mode=word-wave), keep the Display Text short — a title or a hook, not a sentence; and judge your near-final pass at arm's length rather than nose distance, because arm's length is where your audience holds the phone. *Figure: A particles engine visualizer still with bold central motion — Bold, centered motion stays readable when the video is watched on the same class of device that made it.* #### Battery, heat and clean renders - **Plug in before exporting.** Rendering and encoding video is among the heaviest work a phone browser can do; on battery you are racing the low-power governor. - **Keep the tab in the foreground until the export finishes.** Mobile browsers aggressively throttle or suspend background tabs — and the render is happening in that tab. - **Close other heavy apps and tabs first.** Free memory is render headroom. - **Let a hot phone cool down.** Thermal throttling slows every frame; a two-minute pause beats a crawling render. - **Do not panic over a choppy live preview.** The exporter renders frame by frame rather than in real time, so preview stutter on a warm phone does not become stutter in the file. - **Test short first.** Render a short track once to sanity-check the look before committing to a full song. None of this is unique to Novus — it is simply what sustained rendering asks of a phone — but because the whole pipeline lives in the browser, a little battery-and-foreground discipline is the only setup the mobile workflow ever needs. #### When the desktop earns its keep Three things send you to a bigger machine. **4K:** widescreen YouTube uploads benefit from a 4K master, and that is desktop territory. **Creator Studio:** the [node-graph editor](https://visualizers.novusstreamsolutions.com/studio) — layer stacks, merge nodes, LFOs, effect chains, logo upload — is built for a large screen and a pointer; it is the deep end of Novus and simply wants room. **Long renders:** desktop hardware chews through a full-length track faster, full stop. One planning note: your work saves locally in the browser of the device you are using, so a project started on your phone lives on that phone. Plan to finish where you start — and since a Classic setup is a template plus a handful of control tweaks, recreating one on desktop takes about two minutes if you change your mind. The best workflow is the one that gets the video made. If tonight that means your phone on the couch — template, track, three tweaks, 1080p export — that is a real, publishable video, and [the gallery](https://visualizers.novusstreamsolutions.com/templates) is one tap away. Deciding between the two editors long-term? [Classic vs Studio](https://visualizers.novusstreamsolutions.com/blog/classic-vs-studio-which-editor) breaks it down. --- ### From Template to Finished Export in Ten Minutes URL: https://visualizers.novusstreamsolutions.com/blog/template-to-export-in-ten-minutes Published: 2026-07-23 · Author: Novus Team · 7 min read A real-time walkthrough: pick a template, audition modes, upload your track in Classic, make the three tweaks that matter and export — all in ten minutes. This is a walkthrough with a stopwatch. Novus runs entirely in the browser — nothing to install, no account gate, no watermark bargaining — so the honest distance between “I have a track” and “I have a finished video file” is about ten minutes. Here is exactly where those minutes go. You need one thing before starting: an audio file of your track on the device you are using. Everything else is already on the page. A pair of headphones helps too — you will be making taste calls against the mix, and a phone speaker lies about the low end. #### Minutes 0–2: pick a template, not a blank canvas Start at the [template gallery](https://visualizers.novusstreamsolutions.com/templates), not an empty editor. There are ten engines — particles, trails, bloom, character motion, radial, spectrum, bars, tunnel, waveform and logo — and every card previews live when you hover it, so one slow scroll down the page is genuinely the fastest shortlisting tool. You are choosing a personality here, not final details: does your track want something that erupts, something that flows, or something that breathes? #### Minutes 2–4: audition the modes Open a template page and it starts playing immediately — every template demos with one of three short loops Novus composed in-house (at 124, 92 and 140 BPM), so you can judge how the scene reacts to real audio before uploading anything. Each engine has six modes, and you can switch between them right on the page; the mode is tracked in the URL, so when you find the one, the link itself remembers it. Two minutes is enough. If you are torn between two modes, take the simpler one — simple survives compression, small screens and short attention spans better. The runner-up is not lost, either: keep its URL and give it an export of its own another day. *Figure: A radial engine visualizer still with a central pulsing form — Center-anchored radial modes are reliable first-video picks — they read at any size and any aspect ratio.* #### Minute 4: open it in the Classic editor Send your pick into the [Classic editor](https://visualizers.novusstreamsolutions.com/editor). Classic is the guided one — a canvas plus a focused set of controls — and it is the right choice for a first video. The node-graph [Creator Studio](https://visualizers.novusstreamsolutions.com/studio) is the deep end; save it for the day you want layers and custom signal routing. #### Minutes 4–5: upload your track Drop in your audio file. Analysis happens in your browser — the track is not sent to a server — and the moment you press play, the scene reacts to *your* music instead of the preview loop. Watch and listen for thirty seconds before touching anything, because every tweak that follows should be a reaction to what you see here. What you are looking for in that first watch: do the big hits land where your ears expect them, does the motion feel too busy or too sleepy against the mix, and does the default palette fight your cover art? Those three observations map one-to-one onto the three tweaks below — which is exactly why you watch before you touch. #### Minutes 5–8: the three tweaks that matter 1. **Color Mode.** Cycle duo, gradient and rainbow spectrum until the palette matches the song's temperature — most people can hear whether their track is a two-color track or a rainbow track. If you have cover art, steal its palette with a duo or gradient. Sixty seconds. 2. **Beat Response and Pulse Intensity.** This pair decides whether the scene taps its foot or throws its whole body. Play the chorus, raise Beat Response until the hits feel like the drums, then use Pulse Intensity to size the reaction. If your genre has a known recipe, the [modes-by-genre guide](https://visualizers.novusstreamsolutions.com/blog/visualizer-modes-by-genre) lists starting points. 3. **Glow and Shake Amount.** The polish pass. A touch of glow softens edges; a touch of shake adds impact on the biggest hits. Both are seasoning — if you notice them constantly, halve them. > **Leave the rest alone** > Templates ship with working defaults on purpose. Changing three controls with intent beats changing fifteen out of curiosity — you can always come back after the first export. *Figure: Diagram of the path from template choice through track upload and tweaks to export — The whole path: a template supplies the look, your track supplies the motion, three controls supply the taste.* #### Minutes 8–10: export Open export, pick MP4 or WebM, pick your resolution — up to 4K on a desktop, 1080p on a phone — and let it render. Because the renderer is deterministic, the file matches the preview byte for byte: the beats you approved land on the identical frames, so there is no anxious re-watch to see whether the render “took.” It is free, there is no watermark, and the file is simply yours. And if the result surprises you anyway — a color that reads differently at full size, a shake that felt subtler in a small window — change one control and render again. Iteration is the real workflow here: exports cost nothing and nothing queues behind a server, so the second attempt follows the first within minutes. #### Where the ten minutes actually go wrong - Auditioning all 60 looks. Shortlist from the gallery hover previews, cap yourself at three template pages, and commit. - Tuning controls against the built-in preview loop instead of your own track. Upload first, then tweak — the loop is for choosing a scene, not calibrating one. - Exporting before watching one full pass in preview. A three-minute watch now beats a re-render later. That is the entire path. When the ten-minute version leaves you wanting platform-perfect sizing — vertical crops, 4K, bitrate — the next read is [export settings for YouTube, Shorts and TikTok](https://visualizers.novusstreamsolutions.com/blog/export-settings-youtube-shorts-tiktok). And when you outgrow Classic, [Creator Studio](https://visualizers.novusstreamsolutions.com/studio) is waiting with layers and a node graph. --- ### The Right Visualizer Mode for Every Genre: 54 Looks, Sorted URL: https://visualizers.novusstreamsolutions.com/blog/visualizer-modes-by-genre Published: 2026-07-22 · Author: Novus Team · 7 min read Genre-by-genre picks from all 60 looks — the best engine and mode for EDM, hip-hop, ambient, rock, pop and jazz, with Beat Response settings for each. The Novus catalog is ten engines with six modes each — 60 distinct looks. That is small enough to browse in an evening and large enough to stall on, so this is the shortlist guide: for each genre, the two or three modes that reliably work, why they work, and how to set the shared controls so the scene moves the way the music feels. Every pick links straight into the [template gallery](https://visualizers.novusstreamsolutions.com/templates), where hovering a card previews it live. Two things before the picks. First, these are starting points, not rules — and the fastest way to test one against your own taste is the template page itself, which plays one of three built-in loops (at 124, 92 and 140 BPM) so you can judge reactivity at a tempo close to your track. Second, the same few controls do most of the work everywhere: **Beat Response** sets how hard the scene reacts to each beat, **Pulse Intensity** sizes that reaction, **Shake Amount** adds physical impact, **Rotation Speed** sets the underlying drift, and **Color Mode** switches between a two-color duo, a gradient and a full rainbow spectrum. *Figure: Grid diagram of the ten visualizer engines and their modes — Ten engines, six modes each. Genre is the filter that turns 60 options into a shortlist.* #### EDM, house and dance Four-on-the-floor music wants an unmistakable, repeating hit. [Stacked Bands](https://visualizers.novusstreamsolutions.com/templates/bars?mode=stacked-bands) is the flagship pick — an LED-style meter wall with a floor reflection that reads instantly as a stage. [Warp Field](https://visualizers.novusstreamsolutions.com/templates/tunnel?mode=warp-field) turns drops into acceleration, and [Fountain Burst](https://visualizers.novusstreamsolutions.com/templates/particles?mode=fountain-burst) erupts on every kick. Settings: push **Beat Response** high and let **Pulse Intensity** carry the drop; add **Shake Amount** sparingly, so it punctuates the biggest moments instead of running continuously. A rainbow spectrum Color Mode suits festival energy; a two-color neon duo reads more club. #### Hip-hop and trap Sub-bass is the star, so pick modes where one central element visibly breathes with the low end. [Pulse Orb](https://visualizers.novusstreamsolutions.com/templates/radial?mode=pulse-orb) is the genre's natural heartbeat, [Center Mirror](https://visualizers.novusstreamsolutions.com/templates/bars?mode=center-mirror) gives symmetric meters that hit from the middle out, and [Echo Streaks](https://visualizers.novusstreamsolutions.com/templates/trails?mode=echo-streaks) leaves motion smears that ride hat rolls nicely. Settings: **Beat Response** high but **Shake Amount** low — heads nod, they do not convulse. Keep **Rotation Speed** slow and choose a duo Color Mode in your cover art's palette; hip-hop visuals tend to land best restrained and confident rather than busy. #### Lo-fi and chillhop Drop the intensity, keep the pulse. [Ink Diffusion](https://visualizers.novusstreamsolutions.com/templates/bloom?mode=ink-diffusion) blooms softly with the beat, and a [filled waveform](https://visualizers.novusstreamsolutions.com/templates/waveform?mode=filled) gives the classic low-key study-stream look. Set **Beat Response** to the low-mid range, raise the glow until edges soften, and use a warm gradient. The scene should sway, not jump. #### Ambient, downtempo and cinematic With no drum grid to chase, discrete hits feel wrong — choose modes that grow and drift instead. [Vine Mycelium](https://visualizers.novusstreamsolutions.com/templates/bloom?mode=vine-mycelium) and [Cellular Growth](https://visualizers.novusstreamsolutions.com/templates/bloom?mode=cellular-growth) evolve organically with sustained energy, [Dust Storm](https://visualizers.novusstreamsolutions.com/templates/particles?mode=dust-storm) breathes with the mix, and [Ribbon Surface](https://visualizers.novusstreamsolutions.com/templates/spectrum?mode=ribbon-surface) turns the spectrum into slow terrain. Settings: **Beat Response** near its minimum, no shake at all, **Rotation Speed** at a crawl. This is the one family of genres where you deliberately tune the scene to *ignore* the beat and follow the overall swell instead. *Figure: A bloom engine visualizer still with organic radial growth — Bloom's growth modes suit music that swells instead of hitting — the scene evolves with sustained energy rather than snapping to a grid.* #### Rock, metal and live takes Rock rewards rawness. [Oscilloscope Lissajous](https://visualizers.novusstreamsolutions.com/templates/waveform?mode=oscilloscope-lissajous) draws the actual signal and feels like lab equipment wired to an amp, [3D Columns](https://visualizers.novusstreamsolutions.com/templates/bars?mode=3d-columns) is a wall of meters with real weight, and [Comet Shower](https://visualizers.novusstreamsolutions.com/templates/trails?mode=comet-shower) keeps up with double-time energy. Settings: **Beat Response** mid-to-high, but keep glow restrained — too much bloom turns grit into neon. A hot two-color duo (white on red, amber on black) usually beats a rainbow here. #### Pop and vocal-led songs When the vocal is the hook, consider putting words on screen. [Word Wave](https://visualizers.novusstreamsolutions.com/templates/character-motion?mode=word-wave) animates an editable Display Text — the title or the hook line — riding the music. If text feels heavy for the platform, [Sunburst](https://visualizers.novusstreamsolutions.com/templates/radial?mode=sunburst) and [Mirrored Area](https://visualizers.novusstreamsolutions.com/templates/spectrum?mode=mirrored-area) both flatter melodic movement without fighting a vocal. Settings: moderation everywhere. Vocals live in the mids, and a scene tuned to slam on bass will feel disconnected from a vocal-led mix. Middle-of-the-range **Beat Response** with a gradient pulled from your cover art is the reliable recipe. #### Classical, jazz and acoustic Rubato and brushed drums defeat beat-chasing scenes, so lean on continuous spectral detail instead. [Frequency Ridge](https://visualizers.novusstreamsolutions.com/templates/spectrum?mode=frequency-ridge) and [Spectral Mesh](https://visualizers.novusstreamsolutions.com/templates/spectrum?mode=spectral-mesh) render harmonic structure as landscape, a [ribbon waveform](https://visualizers.novusstreamsolutions.com/templates/waveform?mode=ribbon) follows dynamics gracefully, and [Petal Bloom](https://visualizers.novusstreamsolutions.com/templates/bloom?mode=petal-bloom) opens and closes with phrasing. Settings: the lowest **Beat Response** in this guide — the continuous motion of the spectrum carries the scene, and a discrete hit landing on a rubato phrase reads as a mistake. Subtle glow, slow rotation, restrained gradient. #### The cheat sheet - **EDM / dance** — Stacked Bands, Warp Field, Fountain Burst · Beat Response high, shake saved for drops - **Hip-hop / trap** — Pulse Orb, Center Mirror, Echo Streaks · Beat Response high, shake low, slow rotation - **Lo-fi** — Ink Diffusion, filled waveform · Beat Response low-mid, heavy glow, warm gradient - **Ambient / cinematic** — Vine Mycelium, Dust Storm, Ribbon Surface · Beat Response minimal, no shake - **Rock / metal** — Oscilloscope Lissajous, 3D Columns, Comet Shower · Beat Response mid-high, restrained glow - **Pop / vocal** — Word Wave, Sunburst, Mirrored Area · everything moderate, gradient from cover art - **Classical / jazz** — Frequency Ridge, ribbon waveform, Petal Bloom · lowest Beat Response, subtle glow Genre gets you to a shortlist; your ears finish the job. Open two or three of these picks from the [gallery](https://visualizers.novusstreamsolutions.com/templates), let the built-in loops play, then take the winner into the [editor](https://visualizers.novusstreamsolutions.com/editor) with your own track — every control above is live there, and the right setting is the one that makes *your* mix feel inevitable. For the deeper theory of why the same audio drives such different scenes, read [How Music Visualizers Work](https://visualizers.novusstreamsolutions.com/blog/how-music-visualizers-work). --- ### Export Settings for YouTube, Shorts, TikTok & Reels: A Practical Guide URL: https://visualizers.novusstreamsolutions.com/blog/export-settings-youtube-shorts-tiktok Published: 2026-07-21 · Author: Novus Team · 7 min read The right resolution, aspect ratio and frame rate for YouTube, Shorts, TikTok and Reels — plus how the in-browser exporter works and a pre-upload checklist. Nothing deflates a finished visualizer faster than the platform it lands on. You render a crisp file, upload it, and the feed serves back something soft, blocky and letterboxed. None of that is bad luck — every platform re-encodes every upload, and what survives depends almost entirely on whether you handed it the shape, size and quality it expects. Get those three right and your export makes the trip intact. This guide collects the numbers that matter for YouTube, Shorts, TikTok, Reels and square feed posts, then walks through how the Novus exporter itself works so you know exactly what you are uploading. Everything renders [in your browser](https://visualizers.novusstreamsolutions.com/editor) — free, watermark-free, as MP4 or WebM, up to 4K on desktop and 1080p on phones. #### Aspect ratio comes first Choose the destination before you design, because aspect ratio is a composition decision, not an export toggle. A wide 16:9 scene cropped to vertical loses two-thirds of its frame — usually the two-thirds where the interesting motion lives. Working at the target shape from the start lets you put the action where the platform will actually show it: centered and tall for a phone screen, spread wide for a TV or desktop player. Some looks re-compose more gracefully than others. Center-anchored modes — [Pulse Orb](https://visualizers.novusstreamsolutions.com/templates/radial?mode=pulse-orb), [Warp Field](https://visualizers.novusstreamsolutions.com/templates/tunnel?mode=warp-field), a [mirrored waveform](https://visualizers.novusstreamsolutions.com/templates/waveform?mode=mirrored) — read well at any shape because the energy radiates from the middle. Wide, horizon-style modes like the [linear equalizer](https://visualizers.novusstreamsolutions.com/templates/bars?mode=linear-equalizer) or [Frequency Ridge](https://visualizers.novusstreamsolutions.com/templates/spectrum?mode=frequency-ridge) are built for 16:9 and feel cramped when squeezed vertical. *Figure: Diagram comparing 16:9 widescreen, 9:16 vertical and 1:1 square video frames — One scene, three canvases. Compose at the aspect ratio you will publish — cropping afterwards throws away most of the frame.* #### YouTube: 16:9, as large as you can render Standard YouTube videos are 16:9 — 1920×1080 at minimum, and 3840×2160 (4K) if you are exporting from a desktop. Uploading 4K is worth it even when most of your audience watches at 1080p: platforms typically route higher-resolution uploads through their better codecs and more generous bitrate tiers, so a downscaled 4K master usually looks cleaner than a native 1080p upload of the very same scene. Both 30 and 60 fps are fully supported everywhere. Visualizers are pure motion, so 60 fps flatters fast scenes — particles, tunnels, anything with shake — while 30 fps is perfectly fine for slow ambient looks and halves the encoding work. On bitrate: a clean 1080p file at 30 fps usually sits around 8 Mbps, 1080p60 around 12 Mbps, and 4K from roughly 35–45 Mbps. Treat those as sanity checks for anyone re-encoding in another tool — the exporter's own output is written to look good without you configuring anything. #### Shorts, TikTok and Reels: 9:16 All three short-form feeds want full-screen vertical: 1080×1920. The number-one mistake here is not resolution — it is ignoring the interface. TikTok and Reels stack captions, buttons and usernames along the bottom and the right edge, so anything important living there gets buried. Keep the focal point centered and let the outer edges be atmosphere: a centered [Sunburst](https://visualizers.novusstreamsolutions.com/templates/radial?mode=sunburst), [Particle Vortex](https://visualizers.novusstreamsolutions.com/templates/tunnel?mode=particle-vortex) or [Word Wave](https://visualizers.novusstreamsolutions.com/templates/character-motion?mode=word-wave) title treatment sits exactly where every platform leaves the view clear. Length limits shift over time (Shorts currently allows up to three minutes), but short-form is a hook economy regardless: the first second should already be moving. The video starts where your track starts, so upload a cut of the song that opens with energy rather than four bars of quiet intro. #### Square and other feed shapes 1:1 at 1080×1080 still earns its place for feed posts, loop teasers and anywhere a grid crops your video into a tile. Square is the diplomatic shape — nothing gets prime placement, nothing gets destroyed — which makes it a reasonable single-render compromise when you truly cannot make a second export. But exports here cost nothing, so the honest recommendation is: make the second export. #### How the in-browser exporter works Novus has no render farm. The same engine that draws your live preview renders the export frame by frame in your browser and encodes it to MP4 or WebM on your machine. That design has three practical consequences. Your track and your video never touch a server — nothing goes anywhere until you post the file yourself. Export is free with no watermark, because there is no per-render cloud bill to recover. And because beat sync is fully deterministic, the export matches the preview byte for byte: a hit that lands on a downbeat in preview lands on the identical frame in the file, every render, every time. Resolution follows the device. Desktops export up to 4K; phones cap at 1080p, which — not coincidentally — is exactly what the vertical platforms deliver anyway. If you are curious how far a phone-only workflow can go, that is its own post: [the mobile visualizer workflow](https://visualizers.novusstreamsolutions.com/blog/mobile-visualizer-workflow). *Figure: A tunnel engine visualizer still with fast forward motion — High-motion looks — tunnels, particle bursts, shake — are the first to fall apart under a starved bitrate. Export them at the highest resolution your device allows.* #### The pre-upload checklist 1. **Watch the whole file once**, full-screen — not just the first ten seconds. Encoding artifacts love to hide in the loudest section. 2. **Spot-check three beats** — one near the start, one at the biggest drop, one near the end — and confirm the hits read the way they did in preview. 3. **Check the edges at the target shape.** On 9:16, keep anything essential out of the bottom quarter and the right rail where platform UI stacks. 4. **Confirm the shape matches the destination.** A letterboxed upload is the fastest way to look wrong in a vertical feed. 5. **Play it muted.** Most feeds autoplay silent — a good visualizer still looks alive with the sound off. > **One song, several platforms** > Do not crop one master into every shape. Compose 16:9 and 9:16 as separate renders — same template, same colors, two minutes apart. Exports are free, so the second render is the cheapest quality upgrade you will ever make. If you have not made your first export yet, start with the ten-minute path — [from template to export in ten minutes](https://visualizers.novusstreamsolutions.com/blog/template-to-export-in-ten-minutes) — and come back here to tune the numbers. Still choosing a look? The [template gallery](https://visualizers.novusstreamsolutions.com/templates) previews every engine and mode in place. --- ### Classic Editor vs Creator Studio: Which Should You Use? URL: https://visualizers.novusstreamsolutions.com/blog/classic-vs-studio-which-editor Published: 2026-07-20 · Author: Novus Team · 8 min read The guided Classic editor and the node-based Creator Studio open the same document. An honest comparison, a decision guide, and when it pays to switch. Novus ships two editors: the guided [Classic editor](https://visualizers.novusstreamsolutions.com/editor) and the node-based [Creator Studio](https://visualizers.novusstreamsolutions.com/studio). The obvious question — *which one should I use?* — has a slightly surprising answer, because they are not competing products. Both are free, both export identically, and both open the **same document**. The real question is *when* each one earns its keep. Here is the honest comparison. #### What Classic is Classic is a guided path: upload a track, pick a template from the [gallery](https://visualizers.novusstreamsolutions.com/templates), tweak, export. The tweaking happens through the shared control set — Color Mode (duo, gradient or full rainbow spectrum), Beat Response, Pulse Intensity, Shake Amount, Rotation Speed, glow and chromatic aberration — which is deliberately small enough to learn in one sitting. And because all 60 looks in the catalog ship as templates, starting points are never the bottleneck. Classic is optimized for *finishing*: there is always an obvious next step, and the distance from a blank page to an exported MP4 is minutes, not hours. #### What Studio is Studio trades the guided rail for a workbench: a **layer stack** where each layer draws its own engine, a **node graph** where signals — `audio-source`, `math`, `merge` (with its a/b inputs), `LFO`, `remap`, `random` and effect nodes — are wired into any parameter, an **inspector** for whatever is selected, and an assets area for project files, including logo uploads. Studio is optimized for *control*: if you can describe a behavior, you can usually wire it. *Figure: Diagram of Studio's layer stack compositing multiple engine layers — Studio's defining power: multiple engine layers, each with its own wiring, composited into one scene.* #### The part people miss: one document Because both editors open the same document, choosing is never a commitment. Start a project in Classic, open it in Studio to add a second layer, hop back to Classic to nudge colors before export — nothing is converted, exported or lost along the way. Switching editors is walking between two rooms of the same workshop, not migrating between apps. That single fact should lower the stakes of everything else in this post. #### A month in the life of one project A concrete example. A podcaster starts in Classic: upload episode one, open the *stacked-bands* template from the [Bars engine](https://visualizers.novusstreamsolutions.com/templates/bars), set a duo Color Mode to the show's two colors, ease the Shake Amount down, export a 16:9 for YouTube. Twenty minutes, done, repeat weekly. A month in, the show wants a signature look — so they open the *same project* in Studio, drift a Particles layer behind the bars, add an `LFO` for a slow breathing motion no slider offered, and finish with a glow effect node. From then on, weekly production happens back in Classic — swap the audio, re-export — while the Studio wiring keeps working underneath. Neither editor could have carried that workflow alone. #### Choose by task - **Your first visualizer ever** — Classic. Learn what the controls feel like before you wire them. - **A template plus color and beat tweaks** — Classic. The shared controls cover it with room to spare. - **Two engines in one frame** — Studio. Layering is a Studio-only superpower. - **A parameter that moves on its own, or reacts on a custom curve** — Studio. That is `LFO`, `remap` and `math` territory. - **A logo video** — start in Classic with the [logo-crown template](https://visualizers.novusstreamsolutions.com/templates/radial?mode=logo-crown); move to Studio only if you want extra layers behind the ring. - **A words-on-screen video** — either: the Character Motion engine's *word-wave* mode has an editable Display Text field that works from Classic, while Studio lets the words share the frame with more layers. - **A deadline in ten minutes** — Classic, no contest. #### Signals it is time to graduate Most people should start in Classic and stay until it pinches. The pinch is easy to recognize: - You keep wishing a control would *move on its own* instead of holding one value. - You want engine A drifting quietly behind engine B. - You want an effect — a glow, an aberration — on *one element* instead of the whole frame. - You are fighting a slider to approximate a behavior you can describe precisely. Each of those sentences is a node graph asking to exist. When you hear yourself say one, open the same project in [Studio](https://visualizers.novusstreamsolutions.com/studio) and build the thing directly — [our first-composition walkthrough](https://visualizers.novusstreamsolutions.com/blog/studio-node-graph-first-composition) covers the exact wiring. #### What does not change Everything that defines the output is identical in both editors. The full catalog — 10 engines, 6 modes each, 60 looks — is available to both. Beat sync behaves the same: a discrete, visible hit on every beat, computed deterministically. Export is the same in-browser render at up to 4K on desktop and 1080p on phones, as MP4 or WebM, free and watermark-free — and in both editors the preview matches the export exactly. Nobody can look at a finished video and tell which editor made it. *Figure: A waveform visualizer still — The same scene renders identically whichever editor you shaped it in.* > **There is no wrong door** > Because the document travels with you, the worst-case cost of picking the “wrong” editor is one click to open the other. Pick whichever matches your mood today. #### Three misconceptions worth clearing - **“Studio is the paid tier.”** No — both editors are free and neither watermarks exports. Studio is a different interface, not a different license. - **“Classic makes lesser videos.”** The render pipeline is identical; a Classic-only project exports at the same quality and resolution as a graph-heavy Studio one. - **“I'll have to export from one and import into the other.”** Never — it is one document. Opening the other editor is navigation, not migration. #### Bottom line Classic is for finishing; Studio is for inventing. Ship your everyday videos through [Classic's guided flow](https://visualizers.novusstreamsolutions.com/editor) — the [full walkthrough](https://visualizers.novusstreamsolutions.com/blog/editor-walkthrough-upload-to-export) takes you upload-to-export — and graduate individual projects to [Studio](https://visualizers.novusstreamsolutions.com/studio) the moment they need layers or motion that sliders cannot express. Same document, same export, two speeds. --- ### Make a Logo Visualizer: A Reactive EQ Ring Around Your Brand URL: https://visualizers.novusstreamsolutions.com/blog/make-a-logo-visualizer Published: 2026-07-20 · Author: Novus Team · 8 min read Turn your logo into a music visualizer with the radial logo-crown template — logo upload, center safe zone, color modes and export sizes for every platform. The logo-in-the-middle visualizer — a brand mark holding the center while a ring of EQ bars reacts around it — is the workhorse video for podcasts, DJs, labels and lo-fi channels: recognizable in a feed, professional on a stream, reusable for every episode or track. In Novus this is the Radial engine's *logo-crown* mode, and building one takes about ten minutes. Everything below is free and exports without a watermark. #### Step 1 — open the logo-crown template Head to the [Radial engine page](https://visualizers.novusstreamsolutions.com/templates/radial) and choose *logo-crown*, or jump straight to it at [/templates/radial?mode=logo-crown](https://visualizers.novusstreamsolutions.com/templates/radial?mode=logo-crown). Open it in the [editor](https://visualizers.novusstreamsolutions.com/editor) and add your track — the ring starts reacting immediately with a placeholder center, so you can hear and see the scene before your own mark goes in. #### Step 2 — upload your logo Use the logo upload to replace the placeholder with your own mark (in [Creator Studio](https://visualizers.novusstreamsolutions.com/studio), uploads live in the project's assets area, logos included). A **PNG with a transparent background** looks best by far — the mark floats over the scene instead of sitting in a box. Favor a reasonably square crop and a generously sized source image; the exporter can render up to 4K on desktop, and a tiny logo file is the one thing that will look soft at that size. One more filter worth applying: marks with hairline strokes or tiny lettering struggle at feed sizes no matter how well they render, so if your brand kit includes a simplified variant, this is its moment. Solid shapes and strong silhouettes survive both the glow treatment and the shrink to a phone screen. #### Step 3 — trust the center safe zone logo-crown reserves a protected **center safe zone**: the radial EQ ring reacts *around* your logo and never over it, so the mark stays clean and legible through the loudest drop of the song. Size the logo to fill that zone confidently without crowding its edge — too small looks timid, too large fights the ring. If your logo is a wordmark, this zone is exactly why the text never gets sliced by a spiking bar — and it is why starting from logo-crown beats improvising a logo overlay on some other engine, where nothing stops the visuals from drawing straight across your mark mid-drop. *Figure: A radial visualizer still with a reactive ring around a central element — The logo-crown recipe: the center stays protected while the ring carries all the motion.* #### Step 4 — color it to your brand Color Mode offers three routes: a **duo** of two colors, a **gradient**, or the **full rainbow spectrum**. For brand work, duo is usually right — set it to your two brand colors and every frame of the video becomes on-palette by construction. A touch of **glow** lifts the ring off a dark background; **chromatic aberration** adds broadcast-style edge but is worth using sparingly here, since the crisper your mark stays, the more professional the whole video reads. On backgrounds: dark is the easy win, because the ring's glow reads as light and a white or light logo pops against it. If your brand lives on light backgrounds instead, skip the glow and let clean contrast do the same job. #### Step 5 — tune the motion Novus beat sync fires a discrete, visible hit on every beat — deterministic, so your export matches the preview exactly. For a brand video, restraint wins: set **Pulse Intensity** to a medium swell so the ring clearly answers the beat, keep **Beat Response** moderate, and hold **Shake Amount** low or at zero — frame shake moves your logo, and wobbling brand marks read as glitch, not energy. A slow **Rotation Speed** adds a premium orbiting drift between hits. For the theory behind these three controls, see [Beat Sync Explained](https://visualizers.novusstreamsolutions.com/blog/beat-sync-explained-pulse-hits-and-shake). #### Step 6 — try the spectrum-wings preset Want a wider composition? The **spectrum-wings** preset flanks the logo with mirrored spectrum wings — your mark anchors the center while frequency detail spreads to either side. It fills a 16:9 frame beautifully, which makes it a strong pick for YouTube, where the classic ring can leave the far edges of a widescreen frame feeling empty. #### Step 7 — export for every platform Render in the size the destination expects: **16:9** for YouTube, **9:16** for Shorts, Reels and TikTok, **square** for feed posts. Exports render right in the browser as MP4 or WebM — up to 4K on desktop, 1080p on phones — and because rendering is deterministic, the preview you approved is the file you get. One project, re-exported at each size, gives your whole channel lineup a matching look. *Figure: Diagram comparing 16:9, 9:16 and square export framings of one scene — One scene, three framings — export per platform instead of letting apps crop for you.* > **The thumbnail test** > Before publishing, look at a frame of the video at roughly the size it will appear in a crowded feed. If the logo is not instantly recognizable that small, enlarge it within the safe zone or simplify the mark — feed size is where a logo video earns its living. #### Turn one video into a series The real payoff of a logo visualizer is repeatability. Keep the project, and for the next episode or track just swap the audio and export again — the logo, palette and motion settings carry over, so every release lands with the same identity. Deterministic rendering compounds the benefit: the look you approved once is the look every future export inherits, with no surprises between preview and file. If you publish to several platforms, run the 16:9, 9:16 and square exports in one sitting while the project is open, and the whole release goes out matched. #### Going further The template gets you a finished video; [Creator Studio](https://visualizers.novusstreamsolutions.com/studio) gets you a signature one. Open the same project there and add a second engine layer behind the ring — a slow *starfield* or drifting *dust-storm* gives the video depth without touching the logo's safe zone. [Your first wired composition](https://visualizers.novusstreamsolutions.com/blog/studio-node-graph-first-composition) walks through the node graph, and the step-by-step guides in [Tutorials](https://visualizers.novusstreamsolutions.com/tutorials) cover neighboring workflows when you are ready for more. --- ### The Creator Studio Node Graph: Your First Wired Composition URL: https://visualizers.novusstreamsolutions.com/blog/studio-node-graph-first-composition Published: 2026-07-19 · Author: Novus Team · 9 min read Wire an audio source through math and LFO nodes into engine parameters, merge two signals, and add effects — a first walkthrough of the Studio node graph. A slider sets a value. A node graph decides how a value *behaves* — where it comes from, how it is reshaped, and what it drives. That is the core idea behind [Creator Studio](https://visualizers.novusstreamsolutions.com/studio), the second of Novus's two editors: alongside the visual canvas sits a node graph where you wire your track's audio into any engine parameter, bend it through math, blend it with generators, and finish with effects. This walkthrough builds a first composition from an empty wire to a layered, breathing scene. #### The lay of the land Studio has four working surfaces. The **canvas** shows the live scene. The **layer stack** lists what is being drawn — each layer renders one engine, composited in order. The **node graph** holds the wiring for how parameters move. And the **inspector** shows editable details for whatever you have selected, with an assets area for the files a project uses, including uploaded images and logos. Crucially, Studio edits the *same document* as the [Classic editor](https://visualizers.novusstreamsolutions.com/editor) — a project is never trapped in one or the other. *Figure: Diagram of stacked visualizer layers composited into one scene — Each layer draws one engine; the stack composites them into a single scene.* If you have used audio tools, the mental model transfers directly: layers are your mixer channels, the graph is your patch bay. If you have not, no matter — the walkthrough below assumes nothing beyond the ability to drag a wire from one port to another. #### The node vocabulary - `audio-source` — emits levels measured from your track; the raw material of every reactive patch. - `math` — arithmetic on signals: scale them, offset them, combine them. - `merge` — blends two inputs, **a** and **b**, into one output; the standard way to mix an audio signal with a generator. - `LFO` — a low-frequency oscillator that moves on its own, no audio required; the source of motion during quiet passages. - `remap` — rescales a signal's range into the range a parameter actually wants; the difference between twitchy and tasteful. - `random` — controlled unpredictability, for variation that never repeats exactly. - **Effect nodes** — glow, chromatic aberration and friends, applied to the rendered result at the end of a chain. #### First composition: a breathing orb Start from anything in the [gallery](https://visualizers.novusstreamsolutions.com/templates) or from a blank project, and give yourself a single layer running the Radial engine in its *pulse-orb* mode — one glowing orb, dead center, an ideal test subject because every change reads instantly. 1. **Wire audio to scale.** Add an `audio-source` node and connect its output to the orb layer's scale parameter by dragging from the output port to the input port. Play the track: the orb now grows with the music. It will almost certainly move too much — that is expected. 2. **Tame it with remap.** Insert a `remap` node between the two, and narrow the output range so full-blast audio produces a graceful swell instead of a lunge. This one habit — remap early, remap often — is most of the difference between amateur and polished patches. 3. **Add an LFO for idle life.** Purely audio-driven scenes die in quiet passages. Add an `LFO` with a slow rate, then a `merge` node: audio into input **a**, LFO into input **b**, merge output into the parameter. Now the orb breathes on its own and *also* answers the music. 4. **Balance with math.** If one side of the merge dominates, insert a `math` node to scale it down before it reaches the merge. Small numbers, big difference. 5. **Season with random.** Route a `random` node into a secondary parameter — a slight rotation wobble, a color drift — so the scene never loops visibly. 6. **Finish with effects.** Add an effect node such as glow at the end of the chain and the whole composition lifts off the background. *Figure: Node chain diagram: audio source through remap and merge with an LFO into a parameter — The classic first patch: audio-source → remap → merge (with an LFO on the b input) → parameter.* #### Add a second layer One layer is a scene; two layers are a composition. Add a Particles layer beneath the orb — *starfield* or *dust-storm* make quiet backdrops — and wire its parameters the same way, but gentler: lower ranges, slower LFO, so the background supports rather than competes. Layer order in the stack decides what draws in front, and effect nodes let you treat each layer's look independently, which is something no single-engine preset can do. A useful discipline once you have two layers: decide which one owns the beat. If both punch on every hit, the frame doubles its motion and reads as noise. Give the foreground the discrete hits and let the background answer levels only, and the composition immediately feels arranged rather than crowded. #### When the graph beats the sliders To be clear, the graph does not replace Classic's shared controls — Color Mode, Beat Response, Pulse Intensity, Shake Amount and Rotation Speed cover a huge share of real videos on their own. The graph answers the requests those controls cannot: a parameter that eases in as the intro builds, a color that drifts on an `LFO` while brightness follows the bass, two engines answering different aspects of the same song. The rule of thumb: when you can phrase the wish precisely, the graph can usually hold it. #### Habits that keep graphs fun - **One wire at a time.** Connect, play, look. Debugging a patch you built in one giant burst is miserable in any node tool. - **Remap before you blame.** Nine times out of ten a “broken” patch is a signal arriving in the wrong range, not the wrong shape. - **Let the LFO carry the floor.** Audio provides the peaks; a slow oscillator provides the resting motion between them. - **Delete freely.** Wires are free and undo exists. Graphs reward experiments. > **What you see is what renders** > Novus renders exports deterministically in the browser, and the preview matches the export — including every node-driven wiggle. There is no “it looked different after rendering” tax on graph complexity, so patch as ambitiously as you like. #### Where to go next When the patch feels right, export straight from the project — MP4 or WebM, up to 4K on desktop, watermark-free. And because both editors share one document, you can hop back to [Classic](https://visualizers.novusstreamsolutions.com/editor) any time for quick color and beat tweaks without unwiring anything. Not sure the graph life is for you yet? [Classic vs Studio](https://visualizers.novusstreamsolutions.com/blog/classic-vs-studio-which-editor) lays out the honest trade-offs, and [the full editor walkthrough](https://visualizers.novusstreamsolutions.com/blog/editor-walkthrough-upload-to-export) covers the upload-to-export path end to end. --- ### Beat Sync Explained: Pulse, Hits and Shake URL: https://visualizers.novusstreamsolutions.com/blog/beat-sync-explained-pulse-hits-and-shake Published: 2026-07-18 · Author: Novus Team · 8 min read How Novus turns BPM into discrete visual hits, why silence stays still, and how to tune Beat Response, Pulse Intensity and Shake Amount for your genre. Continuous motion is the easy half of a visualizer — bars that follow loudness, particles that swell with energy. The thing that makes a scene feel *locked* to a song is discrete: a visible hit that lands on every single beat. In Novus, beat sync means exactly that — one clean, countable hit per beat, produced deterministically so the export is identical to the preview. This post walks the pipeline from raw audio to that hit, then shows how to tune it with the three controls that shape it: **Beat Response**, **Pulse Intensity** and **Shake Amount**. #### Two kinds of reactivity Every engine mixes two response styles. *Continuous* reactivity tracks levels — spectrum height, particle density, glow strength follow the energy of the track from moment to moment. *Discrete* reactivity fires events: on each beat, the scene visibly punches. Continuous motion makes a scene feel alive; discrete hits are what a viewer actually perceives as “synced.” If you have read [How Music Visualizers Work](https://visualizers.novusstreamsolutions.com/blog/how-music-visualizers-work), continuous reactivity is the FFT side of the story — this post is about the beats. #### From track to beat grid When you load a song, Novus analyzes it up front: it estimates the tempo (BPM) and lays a beat grid across the whole file, and each grid point becomes a scheduled hit. Because the analysis happens once on the complete track rather than being guessed live during playback, the schedule never wavers — the same file with the same settings produces the same hits on every play, and the export replays that exact schedule. There is no re-listening at render time, so a hit you see at 0:47 in the preview lands at 0:47 in the finished MP4. *Figure: Pipeline diagram from audio file through BPM analysis to scheduled visual hits — Analysis runs once on the whole file; playback and export both replay the same hit schedule.* #### Why silence stays still A naive beat grid has an embarrassing failure mode: it keeps ticking through silence. The intro fades in, the bridge drops to a lone vocal, the outro rings out — and the visuals keep pulsing to a metronome nobody can hear. Novus gates hits against the actual energy of the track: a grid point only fires as a hit where the music genuinely carries a beat, so quiet passages hold still and breakdowns feel like breakdowns. When the drums come back, the hits come back with them. That gate is the difference between “synced to the song” and “a metronome stapled over the song.” *Figure: Diagram of beats firing only where track energy is present, staying quiet in silence — Hits are gated by real energy — the grid alone is never enough to make the scene pulse.* #### The three controls that shape a hit - **Beat Response** — the master depth of the reaction: how much the scene as a whole leans into each hit. This is the first knob to reach for when everything feels too strong or too subtle. - **Pulse Intensity** — the size of the pulse each hit produces: how far elements swell and brighten on the beat before easing back. - **Shake Amount** — a brief frame shake on each hit. A little reads as impact; a lot reads as chaos. It is the most powerful and the easiest to overdo. A supporting cast rounds out the feel: **Rotation Speed** adds continuous motion between hits so the scene never sits frozen, and **glow** and **chromatic aberration** style the frame so each punch lands with more atmosphere. None of these change *when* hits happen — only how they look. #### Tuning by genre - **EDM, hip-hop, trap** — the beat is the product: Beat Response high, Pulse Intensity strong, Shake Amount moderate. Four-on-the-floor tracks can take more than you think. - **Rock and indie** — live drums breathe, so go medium across the board; an overly rigid pulse fights the human timing. - **Pop and vocal-led** — medium pulse, low shake, so the frame stays steady enough for text and faces to read. - **Ambient, acoustic, lo-fi** — Pulse Intensity low and Shake Amount at zero; let continuous reactivity carry the scene and treat hits as punctuation, not percussion. > **Audition both extremes** > Before you export, scrub to the loudest chorus *and* the quietest verse. Settings that feel perfect on the drop often feel dead in the verse — and settings tuned on a verse can strobe on the drop. Thirty seconds of checking saves a re-render. #### Troubleshooting - **The scene feels twitchy** — lower Shake Amount before touching anything else; shake exaggerates every hit. - **The scene feels flat** — raise Pulse Intensity first, then Beat Response. Pulse changes what a hit looks like; response changes how much of the scene joins in. - **Hits feel double-time or half-time** — tempo detection can lock to twice or half the tempo you tap your foot to. Neither is wrong; tune by ear, and if every-beat hits feel busy, ease Pulse Intensity down so only the strong beats read. - **Hits look weak in this engine** — different engines spend hits differently: Bars snap, Tunnel lunges forward, Radial swells. Try the same track in a second engine before blaming the settings. #### Determinism: preview equals export Because the hit schedule is computed from the file rather than improvised in real time, the render you export is the render you previewed — same beats, same pulses, same shakes, frame for frame. That makes tuning trustworthy: what you sign off on is what your audience sees. Open a beat-forward look such as [stacked-bands](https://visualizers.novusstreamsolutions.com/templates/bars?mode=stacked-bands) in the [editor](https://visualizers.novusstreamsolutions.com/editor), drop in your loudest track, and work the three controls until the drop feels inevitable. For which engines spend their hits best on your style of music, start with [the engine tour](https://visualizers.novusstreamsolutions.com/blog/meet-the-nine-visualizer-engines). --- ### Meet the Novus Visualizer Engines: A Guided Tour of All 60 Looks URL: https://visualizers.novusstreamsolutions.com/blog/meet-the-nine-visualizer-engines Published: 2026-07-17 · Author: Novus Team · 9 min read A tour of all ten Novus engines — Particles, Trails, Bloom, Character Motion, Radial, Spectrum, Bars, Tunnel, Waveform and Logo — with a standout mode for each. Every Novus scene is drawn by one of ten engines — Particles, Trails, Bloom, Character Motion, Radial, Spectrum, Bars, Tunnel, Waveform and Logo — and each engine ships six modes, for **60 distinct looks** in total. An engine is a way of turning sound into picture; a mode is a personality within that way. This post is the full tour: what each engine is good at, when to reach for it, and one highlight mode worth trying first. Everything in the [template gallery](https://visualizers.novusstreamsolutions.com/templates) opens in both editors — the guided [Classic editor](https://visualizers.novusstreamsolutions.com/editor) and the node-based [Creator Studio](https://visualizers.novusstreamsolutions.com/studio) — and every engine speaks the same control language: Color Mode (a two-color duo, a gradient, or the full rainbow spectrum), Beat Response, Pulse Intensity, Shake Amount, Rotation Speed, glow and chromatic aberration. Whatever you learn tuning one engine transfers straight to the other nine. *Figure: Grid of ten visualizer engine tiles, each with six mode variations — Ten engines, six modes each — 60 looks that all share one set of controls.* #### How the catalog is organized Each engine has its own gallery page — [Particles](https://visualizers.novusstreamsolutions.com/templates/particles), [Tunnel](https://visualizers.novusstreamsolutions.com/templates/tunnel) and so on — listing its six modes, and you can deep-link a single look with a mode query like [/templates/radial?mode=logo-crown](https://visualizers.novusstreamsolutions.com/templates/radial?mode=logo-crown). Beat sync behaves identically everywhere: a discrete, visible hit lands on every beat, deterministically, so your export matches the preview frame for frame. With the ground rules set, here is the tour. #### The ten engines, one by one ##### Particles Particles fills the frame with thousands of independent points that drift, fall and burst with the music. Its modes are *dust-storm*, *waterfall*, *starfield*, *fountain-burst*, *orbit-swarm* and *constellation*. It is the most forgiving engine in the catalog — texture and energy without demanding the viewer's full attention — which makes it a safe default for almost any genre. **Highlight mode:** *fountain-burst*, which fires a plume of particles upward on every beat and stays legible even at phone size. ##### Trails Trails draws moving heads that leave glowing paths behind them — motion with memory. Modes: *comet-shower*, *snake-braid*, *orbit-trace*, *flow-field*, *echo-streaks* and *ribbon-flow*. Because the last few seconds of movement stay faintly visible, Trails flatters melodic, flowing music where you want gestures to linger instead of vanish. **Highlight mode:** *flow-field*, which steers hundreds of streaks through an invisible current that bends as the track's energy shifts. ##### Bloom Bloom is the organic-growth engine: shapes germinate, spread and blossom in step with the song. Modes: *petal-bloom*, *ink-diffusion*, *cellular-growth*, *vine-mycelium*, *crystal-growth* and *ripple-blossom*. Growth reads as calm and alive rather than percussive, so Bloom suits ambient, acoustic, neo-classical and slow-burn tracks that would feel bullied by a harder look. **Highlight mode:** *ink-diffusion* — pigment spreading through water, with each beat pushing fresh ink into the frame. ##### Character Motion Character Motion makes characters — letterforms and figures — the visualizer itself. Modes: *glyph-field*, *word-wave*, *ascii-cascade*, *crowd-clone*, *2d-puppet* and *3d-performer*. The *word-wave* mode has an editable Display Text field, so your artist name or track title can literally ride the music, while the figure modes (*crowd-clone*, *2d-puppet*, *3d-performer*) move on the beat for a playful, personality-forward energy. **Highlight mode:** *word-wave* — type your title once and it becomes the scene. ##### Radial Radial arranges everything around a center point: orbs, rays, rings and mandalas breathing outward from the middle. Modes: *pulse-orb*, *sunburst*, *logo-crown*, *mandala*, *concentric-rings* and *orbit-halo*. Center-weighted composition makes Radial the natural pick when one element should anchor the frame. **Highlight mode:** *logo-crown*, the Logo Visualizer — upload a logo and a radial EQ ring reacts around it while a center safe zone keeps your mark untouched. We walk through it step by step in [Make a Logo Visualizer](https://visualizers.novusstreamsolutions.com/blog/make-a-logo-visualizer). ##### Spectrum Spectrum plots the actual frequency content of the track — bass at one end, treble at the other — as lines, surfaces and terrain. Modes: *line-spectrum*, *mirrored-area*, *spectrogram-waterfall*, *frequency-ridge*, *spectral-mesh* and *ribbon-surface*. It is the most literal engine: viewers can watch the kick, the vocal and the hats as separate shapes. **Highlight mode:** *spectrogram-waterfall*, which scrolls the recent spectrum away into a glowing history so the whole arrangement leaves a visible wake. ##### Bars Bars is the classic equalizer, modernized. Modes: *linear-equalizer*, *center-mirror*, *stacked-bands*, *piano-step-grid*, *3d-columns* and *radial-bars*. Nothing says “this video is music” faster than bars jumping on the beat, which is why the engine works equally well for DJ sets, lyric channels and podcasts. **Highlight mode:** *stacked-bands* — LED-style segments with a floor reflection, equal parts hi-fi hardware and festival stage. ##### Tunnel Tunnel pulls the camera through space — rings, grids and vortices rushing past in time with the track. Modes: *concentric-rings*, *corridor-grid*, *warp-field*, *spectrum-tube*, *waveform-tube* and *particle-vortex*. Forward motion delivers instant momentum, which is why Tunnel is a favorite for electronic music and anything that builds toward a drop. **Highlight mode:** *warp-field* — a stars-at-lightspeed rush where every beat kicks the throttle. *Figure: A tunnel visualizer still with rings rushing toward the camera — Tunnel modes trade flat composition for depth — momentum you can feel even in a still.* ##### Waveform Waveform draws the signal itself: the oscillating line every musician recognizes. Modes: *line*, *mirrored*, *filled*, *ribbon*, *oscilloscope-lissajous* and *3d-surface*. It is the minimalist's engine — clean, honest and legible at any size — and a great fit for podcasts, singles and understated brands. **Highlight mode:** *oscilloscope-lissajous*, which bends the signal into looping figures straight off vintage lab hardware. ##### Logo Logo builds the whole scene around your artwork instead of pasting it into a corner. Modes: *waveform-ring*, *spectrum-halo*, *orbiting-bars*, *particle-aura*, *pulse-frame* and *kinetic-reveal*. Every mode reserves a safe zone in the middle and grows its geometry outward from the edge of that zone, so the mark stays clear no matter how loud the track gets — upload a logo, and the reaction happens around it. This is the engine for label idents, artist stingers and anything where the brand is the subject rather than the decoration. **Highlight mode:** *waveform-ring*, where the outline itself is the waveform, so the ring around your logo is literally the shape of the sound. *Figure: A logo visualizer still with a waveform ring around a reserved center — Logo modes size everything from the safe zone outward, so the mark never gets covered.* #### Choosing in under a minute - **Energy without a focal point?** Particles or Trails. - **Want the music itself visible?** Spectrum, Bars or Waveform. - **Building around your own artwork?** Logo. - **Need a centerpiece — an orb, a mandala?** Radial. - **Depth and momentum?** Tunnel. - **Words or characters on screen?** Character Motion. - **Calm, organic motion?** Bloom. Genre sharpens the choice further — we map styles to music in [Choosing the Right Visualizer Engine for Your Genre](https://visualizers.novusstreamsolutions.com/blog/choosing-the-right-visualizer-for-your-genre). And because every mode is a template, the cost of being wrong is one click: open a different look and your track, colors and beat settings come along. #### Take the tour yourself Browse the [full gallery](https://visualizers.novusstreamsolutions.com/templates), open anything in the [editor](https://visualizers.novusstreamsolutions.com/editor), and flip between two or three engines on the same song — identical audio, completely different motion is the fastest way to find your look. Exports are rendered in your browser as MP4 or WebM, up to 4K on desktop, free and watermark-free. When you have a favorite engine, [Beat Sync Explained](https://visualizers.novusstreamsolutions.com/blog/beat-sync-explained-pulse-hits-and-shake) shows how to make it hit harder. --- ### Choosing the Right Visualizer Engine for Your Genre URL: https://visualizers.novusstreamsolutions.com/blog/choosing-the-right-visualizer-for-your-genre Published: 2026-07-16 · Author: Novus Team · 9 min read EDM, lo-fi, ambient, rock or lyric-led — a practical guide to matching a visualizer style to your track, with engine picks and color-theme tips for each. Novus ships ten visualizer engines — Particles, Trails, Bloom, Character Motion, Radial, Spectrum, Bars, Tunnel, Waveform and Logo — and every engine comes in six modes, for 60 distinct looks. That is still a lot of choice, and staring at the full [template gallery](https://visualizers.novusstreamsolutions.com/templates) can be paralyzing. The shortcut is to start from your *music*: the genre, tempo and energy of a track narrow the field fast. This guide maps common genres to specific engines and modes so you can jump to a short list instead of scrolling forever. #### Why engine choice matters As we cover in [How Music Visualizers Work](https://visualizers.novusstreamsolutions.com/blog/how-music-visualizers-work), every engine reads the same audio measurements — it just *draws* them differently. A spectrum engine turns bass into bar height; a particle engine turns the same bass into a burst of sparks. So the question is never “which engine is best” in the abstract — it is “which mapping flatters *this* song.” Match the visual language to the mood of the music and the result feels intentional; mismatch it and even a technically-perfect render feels off. *Figure: Grid of the nine Novus visualizer engines, from spectrum bars to 3D tunnels — The ten engines, from EQ bars to immersive tunnels — each opens into six modes on the templates gallery.* #### EDM, bass music and electronic High-energy electronic music lives and dies on the drop, so you want engines that hit hard on the bass and explode on the beat. Reach for [Bars](https://visualizers.novusstreamsolutions.com/templates/bars) or [Spectrum](https://visualizers.novusstreamsolutions.com/templates/spectrum) for classic EQ energy — [Center Mirror](https://visualizers.novusstreamsolutions.com/templates/bars?mode=center-mirror) and [Mirrored Area](https://visualizers.novusstreamsolutions.com/templates/spectrum?mode=mirrored-area) slam symmetrically on every kick — or [Particles](https://visualizers.novusstreamsolutions.com/templates/particles) for scenes that erupt on cue, with [Fountain Burst](https://visualizers.novusstreamsolutions.com/templates/particles?mode=fountain-burst) firing arcs on each beat. Crank Beat response up and add a little Beat shake so the visuals stay punchy and percussive. *Figure: A spectrum-bars visualizer still — A spectrum scene — the workhorse look for beat-driven electronic music.* #### Hip-hop and lo-fi Hip-hop wants weight without chaos: a strong, steady bass response and a look with attitude. [Spectrum](https://visualizers.novusstreamsolutions.com/templates/spectrum) works well, and the LED-wall look of [Stacked Bands](https://visualizers.novusstreamsolutions.com/templates/bars?mode=stacked-bands) — bass, mids and treble stacked per column — nails the retro EQ attitude. A slower, moodier lo-fi beat pairs beautifully with the drifting motion of [Bloom](https://visualizers.novusstreamsolutions.com/templates/bloom) (try [Ink Diffusion](https://visualizers.novusstreamsolutions.com/templates/bloom?mode=ink-diffusion)) or the lazy currents of the Trails engine's [Flow Field](https://visualizers.novusstreamsolutions.com/templates/trails?mode=flow-field). Ease Beat response down a little so the visuals lean back into the pocket rather than twitching on every hat. #### Ambient and cinematic Atmospheric, slow-evolving music calls for scenes that breathe. The Particles engine's [Starfield](https://visualizers.novusstreamsolutions.com/templates/particles?mode=starfield) and [Orbit Swarm](https://visualizers.novusstreamsolutions.com/templates/particles?mode=orbit-swarm) modes — drifting stars, slow orbits — are tailor-made for it, and the [Tunnel](https://visualizers.novusstreamsolutions.com/templates/tunnel) engine adds real depth to a pad-driven track. Keep Beat response gentle and Sensitivity low so the imagery swells and recedes instead of snapping. *Figure: A drifting starfield scene from the Particles engine — The Particles engine's Starfield mode suits ambient and cinematic tracks where the visuals should drift.* #### Rock, metal and live recordings Guitar-driven music has broadband energy — there is content across the whole spectrum at once. Full-spectrum [Bars](https://visualizers.novusstreamsolutions.com/templates/bars) match that intensity, and the streaking motion of [Trails](https://visualizers.novusstreamsolutions.com/templates/trails) — [Comet Shower](https://visualizers.novusstreamsolutions.com/templates/trails?mode=comet-shower) and [Echo Streaks](https://visualizers.novusstreamsolutions.com/templates/trails?mode=echo-streaks) especially — feels raw and physical, which reads as “live.” Keep Beat response high; rock masters usually have enough dynamic range to avoid strobing. #### Vocal-led and lyric-forward tracks If the voice is the star, let the visuals carry words. The [Character Motion](https://visualizers.novusstreamsolutions.com/templates/character-motion) engine renders titles and lyrics as first-class motion — [Word Wave](https://visualizers.novusstreamsolutions.com/templates/character-motion?mode=word-wave) deforms whole words along a beat-mapped baseline, while [Glyph Field](https://visualizers.novusstreamsolutions.com/templates/character-motion?mode=glyph-field) sends individual characters traveling through the frame — and you can layer synced captions over any other scene. For a full walkthrough, see [How to Make a Lyric Video That Actually Syncs](https://visualizers.novusstreamsolutions.com/blog/make-a-lyric-video-that-syncs). #### Six modes per engine Every engine ships six modes — the same audio plumbing, six different drawings. [Waveform](https://visualizers.novusstreamsolutions.com/templates/waveform) runs from a clean [Line](https://visualizers.novusstreamsolutions.com/templates/waveform?mode=line) to a lit [3D Surface](https://visualizers.novusstreamsolutions.com/templates/waveform?mode=3d-surface); [Bars](https://visualizers.novusstreamsolutions.com/templates/bars) goes from a flat [Linear Equalizer](https://visualizers.novusstreamsolutions.com/templates/bars?mode=linear-equalizer) to beveled [3D Columns](https://visualizers.novusstreamsolutions.com/templates/bars?mode=3d-columns). And because all ten engines share one control set — Color mode (duo, gradient or a full-spectrum rainbow), Beat response, Pulse intensity, Beat shake, Rotation and Glow — anything you learn tuning one engine transfers straight to the other nine. When in doubt, start with an engine's default mode and step through the rest until one clicks. The [engine library](https://visualizers.novusstreamsolutions.com/help/visualizers) breaks each one down. > **Rule of thumb** > Faster, busier track → cleaner mode (a [Line Spectrum](https://visualizers.novusstreamsolutions.com/templates/spectrum?mode=line-spectrum) or [Linear Equalizer](https://visualizers.novusstreamsolutions.com/templates/bars?mode=linear-equalizer)) so the motion stays readable. Slower, spacious track → deeper mode (a [Warp Field](https://visualizers.novusstreamsolutions.com/templates/tunnel?mode=warp-field) tunnel or a drifting [Starfield](https://visualizers.novusstreamsolutions.com/templates/particles?mode=starfield)) so there is something to watch between the hits. #### Matching color themes to mood Style is half the picture; color is the other half. Warm palettes (amber, magenta) feel energetic and intimate; cool palettes (cyan, violet) feel spacious and modern; high-contrast neon reads as club energy. Every engine has a Color mode — a two-color duo, a primary-to-secondary gradient, or a full-spectrum rainbow — so you can keep a favorite engine and re-skin it per release to stay on-brand; the [recoloring tutorial](https://visualizers.novusstreamsolutions.com/tutorials/recolor-with-themes-and-settings) shows how. #### Where to start Pick the engine that matches your genre above, open three or four of its modes on your actual track in the [editor](https://visualizers.novusstreamsolutions.com/editor), and let the music decide. Once a look clicks, [From Upload to Export](https://visualizers.novusstreamsolutions.com/blog/editor-walkthrough-upload-to-export) takes you the rest of the way to a finished file. And if you are curious *why* a given engine reacts the way it does, the engine docs in the [visualizer library](https://visualizers.novusstreamsolutions.com/help/visualizers) go engine by engine. --- ### Designing Cover Art & Spotify Canvas Loops That Match Your Sound URL: https://visualizers.novusstreamsolutions.com/blog/cover-art-and-spotify-canvas-branding Published: 2026-07-16 · Author: Novus Team · 8 min read Build a cohesive visual identity for a release — square cover art, a 9:16 Canvas loop, and typography and color that carry across every platform. A release is not just a song — it is a look. The cover thumbnail in someone's library, the looping Canvas behind the track, the visualizer on YouTube: when they share a visual language, the whole project feels considered and memorable. This guide covers building that identity in Novus, starting from the [Cover Art & Canvas Studio](https://visualizers.novusstreamsolutions.com/albums). #### Visual identity for a release Before opening any tool, decide the *feeling*: warm or cool, minimal or maximal, retro or modern. Pin down two or three colors, one or two fonts, and a motif (a shape, texture or engine style) you will reuse everywhere. That tiny style guide is what makes a cover, a Canvas and a full video read as one release instead of three unrelated assets. #### Square cover vs 9:16 Canvas The two core formats have different jobs. **Cover art is square (1:1)** and often seen tiny — in a phone library it might be a couple of centimeters across, so it has to read at thumbnail size. **Spotify Canvas is a short vertical (9:16) loop**, 3–8 seconds, that plays behind the track on mobile — it should move gently and loop seamlessly without a visible jump. The [cover art tutorial](https://visualizers.novusstreamsolutions.com/tutorials/design-cover-art) and the [Spotify Canvas loop tutorial](https://visualizers.novusstreamsolutions.com/tutorials/spotify-canvas-loop) walk through both formats step by step. *Figure: Diagram comparing square cover art with a 9:16 Canvas loop — Square cover for libraries; a seamless 9:16 loop for Canvas. Design each for where it is seen.* #### Typography and hierarchy On a cover, the artist and title are usually the message, so give them a clear hierarchy: one element dominant, the other secondary. Choose a font with enough weight to survive thumbnail scaling, and resist crowding — negative space reads as confidence. On a Canvas, text can be smaller or absent, because the motion carries the interest. #### Color that matches the mood Color is the fastest way to signal genre and mood before a single note plays. Warm palettes feel intimate and energetic; cool palettes feel spacious and modern; high-contrast neon reads as club energy. Lock a palette and apply it consistently — every Novus engine has primary and secondary colors plus a Color mode (duo, gradient or full-spectrum), so your cover, Canvas and videos can all share the exact same colors; the [recoloring tutorial](https://visualizers.novusstreamsolutions.com/tutorials/recolor-with-themes-and-settings) shows how. *Figure: A drifting starfield scene from the Particles engine, usable as a Canvas backdrop — The Particles engine's slow Starfield mode makes an easy, seamless Canvas loop for ambient and cinematic releases.* #### Animating a Canvas loop A Canvas is short, so favor slow, continuous motion that hides the loop point — drifting particles, a slowly turning orbit, a gentle gradient shift. Avoid a hard beat that snaps at the seam, since the loop will visibly stutter. Slower scenes — the Particles engine's [Starfield](https://visualizers.novusstreamsolutions.com/templates/particles?mode=starfield), the unfolding growth of [Bloom](https://visualizers.novusstreamsolutions.com/templates/bloom), or the Radial engine's phase-drifting [Orbit Halo](https://visualizers.novusstreamsolutions.com/templates/radial?mode=orbit-halo) — are the easiest to loop cleanly. > **Loop test** > Play your Canvas export on repeat and watch the seam. If your eye catches the jump, choose a slower scene or a longer loop — a seamless loop is the difference between a Canvas that feels premium and one that feels rushed. #### Staying on-brand across platforms Reuse relentlessly. The same palette, font and motif on your cover, Canvas, lyric video and YouTube visualizer turns a single release into a recognizable set. Save your dialed-in scene and re-skin it per track so an EP or album shares one identity while each song stays distinct. #### Exporting PNG and an MP4 loop Export the cover as a high-resolution image and the Canvas as a short MP4 loop at the right vertical dimensions. Everything renders locally, watermark-free, and you own the files. Check the cover at small sizes before you commit — if it is unreadable as a thumbnail, simplify. #### From cover to full visualizer Once the identity exists, extend it to a full-length video. Take the same engine, palette and typography into the [editor](https://visualizers.novusstreamsolutions.com/editor) and follow [From Upload to Export](https://visualizers.novusstreamsolutions.com/blog/editor-walkthrough-upload-to-export) to produce a complete visualizer that matches the cover and Canvas — a release that looks like it was designed all at once, because it was. Not sure which engine fits? [Choosing the Right Visualizer Engine](https://visualizers.novusstreamsolutions.com/blog/choosing-the-right-visualizer-for-your-genre) has you covered. --- ### From Upload to Export: A Complete Novus Editor Walkthrough URL: https://visualizers.novusstreamsolutions.com/blog/editor-walkthrough-upload-to-export Published: 2026-07-16 · Author: Novus Team · 9 min read A step-by-step tour of the Novus editor — uploading audio, picking a template, tuning layers and reactivity, and exporting a clean MP4 or WebM. The Novus editor takes a song and a scene and gives you a finished video — no software to install, no watermark, and you own the export. This walkthrough follows the whole path once, end to end, so you know where every control lives. Keep the [editor](https://visualizers.novusstreamsolutions.com/editor) open in another tab and follow along. #### 1. Opening the editor You can enter the editor three ways: straight from the [main editor page](https://visualizers.novusstreamsolutions.com/editor) with a blank scene, by opening any scene from the [template gallery](https://visualizers.novusstreamsolutions.com/templates), or via [Quick Start](https://visualizers.novusstreamsolutions.com/quick-setup), a guided flow that picks sensible defaults for you. If you are new, Quick Start is the fastest way to a good-looking result; if you know the look you want, open it from the gallery. (There is also [Creator Studio](https://visualizers.novusstreamsolutions.com/studio), a deeper layers-and-nodes editor that opens the very same project — this walkthrough sticks to the classic editor.) #### 2. Uploading your audio Drop in an MP3, WAV or most common audio file and the editor analyzes it locally in your browser — nothing is uploaded to a server, which is why it is fast and private. Do not have a track handy? The [Audio Library](https://visualizers.novusstreamsolutions.com/audio-library) has copyright-free music you can use commercially. Once the track is in, the editor detects a beat grid you can correct by hand — BPM, offset, even individual markers — which is what keeps every hit on time; the [first visualizer guide](https://visualizers.novusstreamsolutions.com/help/first-visualizer) covers the details. > **Everything is device-local** > Novus is guest-first: your audio, projects and exports live in your browser by default — no account required. That keeps things private and free; signing in is optional if you want cloud-saved revisions, and clearing site data clears any local-only projects. #### 3. Picking a template With audio loaded, choose a scene. If you came in blank, open the engine picker and browse the ten engines — the same ones covered in [Choosing the Right Visualizer Engine](https://visualizers.novusstreamsolutions.com/blog/choosing-the-right-visualizer-for-your-genre). Every engine offers six modes; switch between them live and watch the preview update against your track. #### 4. The settings panel The settings panel is where a scene becomes *yours*. Some controls are engine-specific, but every engine shares a core set: **Beat response** (how hard each detected beat hits — see [How Music Visualizers Work](https://visualizers.novusstreamsolutions.com/blog/how-music-visualizers-work) for the theory), **Sensitivity**, **Pulse intensity**, **Beat shake**, **Rotation** and a **Color mode** that switches between a duo palette, a gradient and a full-spectrum rainbow. Small nudges go a long way; change one thing at a time and let the preview tell you if it helped. *Figure: Diagram of the editor signal chain from audio to scene to layers to export — The editor pipeline: audio drives the scene, layers stack on top, and everything renders into the export.* #### 5. Text overlays and layers Novus scenes are built from toggleable layers — background, the visualizer itself, an optional logo, an overlay, a song title and author text. Turn on the ones you need and position them to taste. Text layers are perfect for a track title, artist name or handle; the [titles, text and logo tutorial](https://visualizers.novusstreamsolutions.com/tutorials/add-titles-artist-text-and-logo) covers fonts, sizing and placement. You can also add synced lyric captions here (more in the [lyric video guide](https://visualizers.novusstreamsolutions.com/blog/make-a-lyric-video-that-syncs)). 1. **Background** — a solid color, gradient or image behind everything. 2. **Visualizer** — the reactive engine itself. 3. **Logo / overlay** — brand marks or a framing overlay on top. 4. **Song title & author** — text layers for titles, artist name or a handle. #### 6. Effects and polish Every engine carries a set of effect controls — Glow, motion echo, blur and more — for a richer, more produced look, and [Creator Studio](https://visualizers.novusstreamsolutions.com/studio) goes further, letting you wire LFO, math and effect nodes into any property on its node graph. Use it all deliberately: a little glow adds depth, a lot turns everything to mush. If a scene feels flat, a touch of Glow and a Color mode tweak usually fixes it faster than any single parameter. #### 7. Choosing resolution and aspect ratio Before exporting, set your canvas to match where the video is going. **16:9** for YouTube and desktop, **9:16** for Shorts / Reels / TikTok, **1:1** for feed posts. Picking the aspect ratio *before* you fine-tune framing saves rework, because text and logo positions are relative to the canvas. *Figure: Diagram comparing 16:9, 9:16 and 1:1 export aspect ratios — Set the aspect ratio to the destination first — 16:9 for YouTube, 9:16 for Shorts, 1:1 for feed.* #### 8. Exporting MP4 or WebM Hit export and Novus renders your video locally — no watermark, no export cap, no account required. **MP4** is the safe, universal choice for social platforms; **WebM** is smaller and great for the web when you control playback. Higher resolutions take longer to render, so a 4K export of a long track will need patience. The [export guide](https://visualizers.novusstreamsolutions.com/help/exporting) covers formats, quality settings and device limits. #### 9. Reusing your look Once you have a scene dialed in, you can reuse it across a whole release so every video shares an identity — the heart of building a brand, which we cover in [Designing Cover Art & Spotify Canvas Loops](https://visualizers.novusstreamsolutions.com/blog/cover-art-and-spotify-canvas-branding). Making a full set of visuals for an album? The [Cover Art & Canvas Studio](https://visualizers.novusstreamsolutions.com/albums) is built for exactly that. Still stuck on something? The [FAQ](https://visualizers.novusstreamsolutions.com/faq) answers the most common questions. --- ### How Music Visualizers Work: FFT, Frequency Bands & Audio Reactivity URL: https://visualizers.novusstreamsolutions.com/blog/how-music-visualizers-work Published: 2026-07-16 · Author: Novus Team · 8 min read A plain-English look at what turns a song into moving visuals — the FFT, frequency bands, amplitude and beat detection that drive every audio-reactive scene. A music visualizer looks like magic: the picture breathes, pulses and flickers in perfect step with the track. Under the hood it is not magic at all — it is a short, repeating loop of *measure the sound, then draw something that reflects the measurement*. Once you understand the handful of measurements involved, every visualizer you have ever seen suddenly makes sense, and tuning one to your own music becomes intentional instead of trial-and-error. This post walks through that loop from the ground up. You can follow along by opening any scene in the [Novus editor](https://visualizers.novusstreamsolutions.com/editor) and watching the numbers move as your track plays. #### What a visualizer actually does Sixty times a second, the app asks the browser one question: *what does the audio look like right now?* The answer comes back as a set of numbers — how loud the track is, how much energy sits in the bass versus the treble, and whether a beat just landed. The visualizer engine reads those numbers and maps them onto whatever it draws: the height of a bar, the radius of a ring, the speed of a particle, the brightness of a glow. That is the whole trick. Everything else — particle fields, 3D tunnels, lyric typography — is a different way of *drawing* the same underlying measurements. Change the mapping and you change the personality of the scene without touching the audio math at all. #### The Web Audio API and the FFT Browsers ship a built-in audio engine called the Web Audio API. When you upload a song, Novus routes it through an `AnalyserNode`, which runs a **Fast Fourier Transform** (FFT) on the signal. The FFT is the single most important idea in visualization, and it is worth a one-sentence explanation: it takes a slice of the raw waveform — just air-pressure values over time — and tells you *which frequencies* are present and *how strong* each one is. In other words, the raw audio is a single wiggly line; the FFT turns that line into a spectrum — a row of bins running from deep bass on the left to bright treble on the right, each bin holding a loudness value. That spectrum is the raw material every engine draws from. *Figure: Diagram of an audio spectrum split into bass, mid and treble frequency bands — The FFT turns the raw waveform into a spectrum of frequency bins, which engines usually group into bass, mid and treble bands.* #### Bass, mids and treble A full spectrum can have hundreds of bins, which is more detail than most scenes need. So engines usually collapse it into a few **bands**: bass (the kick and sub, roughly 20–250 Hz), mids (vocals and most instruments, ~250 Hz–4 kHz), and treble (cymbals, air and sparkle, ~4–20 kHz). Grouping this way is why a bass-heavy EDM drop makes the whole scene slam while a delicate hi-hat only tickles the edges. - **Bass** drives the big, weighty motion — scale, thrust, camera shake, screen-wide pulses. - **Mids** carry melody and vocals — good for the main shapes that should feel connected to the tune. - **Treble** adds detail and shimmer — sparks, highlights, fine particles and glints. > **See it for yourself** > Load a track you know well, then watch a spectrum-style scene: the leftmost bars are your kick and bass, the rightmost are your hats and cymbals. It is the fastest way to build intuition for what each band is doing. We go deeper in the [Tune Audio Reactivity](https://visualizers.novusstreamsolutions.com/tutorials/tune-audio-reactivity) tutorial. #### Amplitude, RMS and onset (beat) detection Alongside the spectrum, engines track overall loudness. Two common measures are **peak amplitude** (the single loudest sample in the current slice) and **RMS** (root-mean-square, a smoothed average that tracks perceived loudness more gently). Peak is twitchy and great for snappy accents; RMS is calm and great for slow swells that should not jitter. Beats are a special case. A *beat* is really an **onset** — a sudden jump in energy, usually in the bass, relative to the recent average. Detect that jump and you can fire an event: a burst of particles, a flash, a camera kick. Because a beat is defined *relative to the recent average*, a quiet passage and a loud passage can both register beats correctly, which is what keeps a visualizer feeling in time across a whole song. *Figure: Diagram showing energy crossing a moving threshold to trigger a beat event — A beat fires when the current energy jumps above a moving average — so both quiet and loud sections stay in time.* #### Mapping numbers to motion Now the fun part. Each engine takes those measurements — per-band levels, amplitude, beat events — and maps them onto its visual parameters. The [Spectrum](https://visualizers.novusstreamsolutions.com/templates/spectrum) engine maps each band to a bar height. The [Particles](https://visualizers.novusstreamsolutions.com/templates/particles) engine maps bass to emission rate and beats to bursts. The [Tunnel](https://visualizers.novusstreamsolutions.com/templates/tunnel) engine maps energy to how fast the corridor rushes past. Same inputs, wildly different outputs. This is exactly why choosing an engine matters so much, which is the subject of our companion post, [Choosing the Right Visualizer Engine for Your Genre](https://visualizers.novusstreamsolutions.com/blog/choosing-the-right-visualizer-for-your-genre). #### Sensitivity and response styles A few shared controls shape how the mapping *feels*, and every Novus engine exposes the same set. **Sensitivity** scales how hard the visuals respond to a given level — turn it up and quiet tracks come alive; turn it down and loud masters stop clipping into a strobe. The **audio attack and release** envelope decides how quickly a value is allowed to change: a slow release gives fluid, cinematic motion, while a fast attack gives sharp, percussive hits. And **Beat response** sets how hard the whole scene hits when a beat lands — every engine produces a visible hit on every beat, with **Beat shake** adding a physical frame kick on top. Everything ships with sensible defaults, and you can nudge each one in the editor to taste. > **Why your visuals sometimes feel “too much”** > A loud, heavily-compressed master leaves little dynamic range for the visualizer to react to, so everything pins to maximum and the motion turns into a strobe. Lower the Sensitivity a notch and lengthen the audio release — the scene calms down and the beats read more clearly. #### Tuning reactivity to your genre Different music wants different settings. Bass-forward genres (EDM, hip-hop, dubstep) reward a high Beat response and a touch of Beat shake so every kick lands visibly. Acoustic and ambient tracks shine with gentler Sensitivity and a longer release so the visuals drift rather than snap. Vocal-led songs benefit from mid-band emphasis so the imagery tracks the melody. The [Tune Audio Reactivity tutorial](https://visualizers.novusstreamsolutions.com/tutorials/tune-audio-reactivity) has starting points for each, and you can experiment live in the editor. #### Try it yourself The best way to internalize all of this is to play. Open the [editor](https://visualizers.novusstreamsolutions.com/editor), drop in a track, and browse the [full engine catalog](https://visualizers.novusstreamsolutions.com/templates) — switch between [Spectrum](https://visualizers.novusstreamsolutions.com/templates/spectrum), [Particles](https://visualizers.novusstreamsolutions.com/templates/particles) and [Tunnel](https://visualizers.novusstreamsolutions.com/templates/tunnel) on the *same* song and watch how identical audio produces completely different motion. If you want to hear individual frequency bands in isolation, the [Audio Effects Generator](https://visualizers.novusstreamsolutions.com/audio-effects) is a handy sandbox. Then read [How FFT Turns Audio Into Visualizer Bands](https://visualizers.novusstreamsolutions.com/blog/how-fft-turns-audio-into-visualizer-bands) and [How Canvas Paints an Audio Visualizer](https://visualizers.novusstreamsolutions.com/blog/how-canvas-paints-an-audio-visualizer) for the platform-level loop, or [From Upload to Export](https://visualizers.novusstreamsolutions.com/blog/editor-walkthrough-upload-to-export) to turn your favorite look into a finished video. **Sources** - [W3C Web Audio API](https://www.w3.org/TR/webaudio/) - [MDN: AnalyserNode](https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode) --- ### How to Make a Lyric Video That Actually Syncs URL: https://visualizers.novusstreamsolutions.com/blog/make-a-lyric-video-that-syncs Published: 2026-07-16 · Author: Novus Team · 8 min read Auto-transcription, per-word timing, legible captions and layering over a visualizer — a complete guide to lyric videos that land on the beat. A great lyric video does one thing exceptionally well: the words land exactly when they are sung. Get the timing right and even a simple design feels professional; get it wrong and the fanciest animation feels amateur. This guide walks through making a lyric video in Novus that stays locked to the vocal — from automatic transcription to a polished export. Open the [Lyric Video Creator](https://visualizers.novusstreamsolutions.com/lyric-videos) to follow along. #### What makes lyrics feel “in time” Two kinds of timing matter. **Line timing** decides when a full line appears and clears — get this roughly right and the video already reads well. **Word timing** highlights each word as it is sung, karaoke-style — this is the polish that makes a lyric video feel premium. Novus can do both, and you can decide how far to push depending on the song. #### Automatic transcription with Whisper Typing and timing lyrics by hand is tedious, so Novus uses **Whisper**, an on-device speech-recognition model, to transcribe your track and produce a first-pass timing map automatically. It runs locally in your browser — your audio never leaves your device. The [synced lyric video tutorial](https://visualizers.novusstreamsolutions.com/tutorials/synced-lyric-video) covers how to kick off a transcription and what to expect. > **Auto-transcription is a starting point** > Whisper is excellent but not perfect — dense mixes, heavy effects and fast rap can trip it up. Treat the auto result as a 90%-there draft you will clean up, not a final render. That is normal and far faster than starting from scratch. #### Correcting per-word timing Play the track and scrub through the transcript, nudging any lines or words that drifted. Focus your effort on the chorus and hooks — those are the moments viewers replay and screenshot, so they deserve tight timing. Verses can be a touch looser without anyone noticing. Fix the misheard words while you are here, too. *Figure: Diagram of lyric captions layered over a visualizer and background — A lyric video is layers: background, a reactive visualizer, then synced captions on top.* #### Choosing a lyric or typographic engine For a words-first video, start with the [Character Motion](https://visualizers.novusstreamsolutions.com/templates/character-motion) engine, where text *is* the visualizer and reacts to the music — [Word Wave](https://visualizers.novusstreamsolutions.com/templates/character-motion?mode=word-wave) ripples whole words along a beat-mapped baseline, while [Glyph Field](https://visualizers.novusstreamsolutions.com/templates/character-motion?mode=glyph-field) and [ASCII Cascade](https://visualizers.novusstreamsolutions.com/templates/character-motion?mode=ascii-cascade) turn individual characters into the scene itself. Prefer a subtler look? Keep any scene you like and add a caption layer on top — the lyrics ride over a [spectrum](https://visualizers.novusstreamsolutions.com/templates/spectrum), a [particle field](https://visualizers.novusstreamsolutions.com/templates/particles) or a slow [tunnel](https://visualizers.novusstreamsolutions.com/templates/tunnel). Both approaches are covered in [Choosing the Right Visualizer Engine](https://visualizers.novusstreamsolutions.com/blog/choosing-the-right-visualizer-for-your-genre). #### Styling captions for legibility Legibility beats decoration every time. A few reliable rules: - Use a heavy weight and generous size — thin fonts vanish over busy visuals. - Add contrast: a subtle shadow, outline or scrim behind the text keeps it readable over bright scenes. - Keep one or two lines on screen at once; walls of text lose the viewer. - Leave safe margins so nothing is clipped by a platform's UI on mobile. The [titles, text and logo tutorial](https://visualizers.novusstreamsolutions.com/tutorials/add-titles-artist-text-and-logo) goes deeper on fonts and placement. #### Layering lyrics over a visualizer The magic combination is a reactive scene *plus* synced words. Ease the visualizer back — lower its Beat response and Beat shake a touch — so it supports the text rather than competing with it, and let the captions be the focal point. If you need a track to build on, the [Audio Library](https://visualizers.novusstreamsolutions.com/audio-library) has copyright-free options you can publish anywhere. #### Export settings for social Match the export to the destination: **9:16** for Shorts, Reels and TikTok; **16:9** for YouTube. Export as MP4 for maximum compatibility. Double-check the first and last few seconds — captions at the very edges of a clip are the easiest to get slightly wrong. The full [editor walkthrough](https://visualizers.novusstreamsolutions.com/blog/editor-walkthrough-upload-to-export) covers resolution and format choices in detail. #### Publishing Your export is watermark-free and yours to publish anywhere — no attribution required. Post the vertical cut to Shorts and Reels, the wide cut to YouTube, and reuse the same lyric styling across a release so the whole project feels like one body of work. **Sources** - [OpenAI Whisper](https://github.com/openai/whisper) - [Hugging Face Transformers.js](https://huggingface.co/docs/transformers.js) --- ## Frequently asked questions **Do I need an account?** No for editing or export. A free username/password account is required for durable Turso saving, private uploads, cross-device access, community publishing, and notifications. **Is Novus free?** Yes. There are no subscriptions, paid tiers, billing entitlements, watermarks, or export quotas. **What happened to 2D, 3D, 4D, and ADV templates?** The public catalog now has 13 canonical engines. Each engine owns six modes and shared 2D/3D geometry, effects, and audio controls. Legacy URLs redirect to the closest engine and mode. **What is the difference between Classic and Studio?** Classic is the guided creator. Studio exposes the full layer tree, node graph, timeline, inspector, geometry, assets, and character-rig workspace. Both edit the same composition without serialization loss. **Where are projects saved?** Signed-in projects and revisions are saved in Turso. Uploaded sources are private Vercel Blob objects. Guests can explicitly export and import `.novusvis` project files but do not receive a durable browser library. **Is audio uploaded?** Only if you choose cloud audio saving for that project. Otherwise analysis stays local and Novus stores a fingerprint plus analysis metadata so another device can request the matching file. **How does account recovery work without email?** Use a passkey or a username plus one unused recovery code. Recovery codes are shown once, hashed, and single-use. Without a passkey, recovery code, or authenticated trusted session, the account cannot be self-recovered. **Are community projects public by default?** No. Projects and assets remain private until explicit publication. Publishing freezes one revision and uses a separate public preview derivative; later edits do not change the post. **Does preview match export?** Preview, still capture, and export share the deterministic composition graph, fixed-step runtime, and audio frame contract. Browser codec and color conversion can create small output differences. **Can phones use Studio and export?** All authoring views are available on phones. Capability-aware export limits constrained phones to 1080p, while supported desktops may export up to 4K. --- ## Release history ### v4.7 — Every Browser Tab Said the Name Twice (2026-09-07) Fourteen pages, the editor and the blog among them, put "Novus Visualizers" in their browser tab and their search result twice over. Alongside that: the Studio node graph now tells you when a patch cannot work, instead of letting the renderer fail somewhere else. - Fixed: Fourteen pages named the site twice in the browser tab and in search results — "Visualizer Editor | Novus Visualizers | Novus Visualizers", and the same on the blog, the tutorials, the audio library, contact, search, the overlays and cover-art pages, and the page you see when a link is broken. Each page was adding the site name to its own title while the site was already adding it for them. The pages now give only their own name. The home page is deliberately left as it was: it is the one page the site-wide rule cannot reach, so it has to name the site itself. - New: The Studio node graph now reports problems in the panel where you build it: a loop that feeds into itself, a connection to a node that is no longer there, a duplicated node, or a feedback node without exactly one input and one output. Previously nothing checked, and an incoherent patch failed later in the renderer, where the message named a drawing step rather than the connection you had just made. Loops through a feedback node are still allowed — that is what a feedback node is for — and muting a connection clears the warning, because a muted connection is not part of the graph. ### v4.6 — Your Track Has a Length Again, and the Site Is Open to AI Assistants (2026-09-04) Every track in the audio library was reported as zero seconds long, which also made the export window zero and the scrubber unable to seek. Alongside that: a Model Context Protocol endpoint, a full plain-text copy of the site, fourteen controls that now say what they do, and the crawl rule that told AI browsers to stay out of the editor is gone. - Fixed: Choosing a track from the audio library left the editor believing it was zero seconds long. The transport showed 0:00 for a six-minute song while it played, the trim range showed 0:00 to 0:00, the export panel showed an export window of 0.00 seconds, and the scrubber could not seek at all. The audio proxy was streaming the file without declaring its size, so the browser could not work out the length and reported it as infinite, which the editor correctly refuses to display. The proxy now declares the length and supports range requests, so the duration, the trim range, the export window and seeking all work. - New: The footer now links to every other Novus app, on every page. It listed three, chosen for relevance to making a music video, and the other five existed only on the tool map and in the machine-readable files. Someone who arrived here from a search had no route to the rest of the estate, and a search engine saw a site that linked to three siblings rather than to a network. The three recommendations stay where they are, with the complete list beneath them. - Fixed: The play and pause control on the editor timeline had no name. It is the most-pressed button in the product and a screen reader announced it as "button", with a named Restart on one side of it and a named Mute on the other. It now names itself and reports whether the track is playing. - New: A Model Context Protocol endpoint at /mcp, so an assistant that speaks MCP can ask this site directly which engines exist, what each mode does, which controls follow the audio, what the performance budgets are, and which overlays are available, and can get back the link that opens a given engine in a given mode. It deliberately cannot render, export, record or upload anything: every visualizer is made in your own tab from audio you chose, nothing is uploaded, and a tool that claimed otherwise would either have to ask for that upload or lie about the result. - Fixed: robots.txt told every named AI agent not to fetch /editor or /studio. That rule was written for bulk indexers, where it is reasonable, and it was applied to user-initiated fetchers too, where it is not: those are an assistant loading a page because a person just asked for it. Since the whole product runs in the browser, an AI browser opening the real editor was the only way an assistant could actually use this site, and the rule switched that off. The six user-initiated agents are now allowed into both workspaces, and bulk crawlers still are not. - Fixed: Seven AI agents were missing from robots.txt entirely, including Claude-User, which is the one that appears when a person is waiting for an answer. The site named every other Anthropic crawler and not that one. Twenty agents are now named across the two policies, and a test fails if a new one is added without a decision about which policy it belongs to. - New: A full plain-text copy of the site at /llms-full.txt: the whole control reference for every engine and mode, every help article, every glossary definition, every tutorial and blog post, the FAQ and the release history, in one document. It is generated from the same registries the pages render, so it cannot describe an engine, a mode or a control that does not exist. Five other Novus sites already served one. - Fixed: Thirteen more buttons and links across the editor, Studio, the help centre, the share dialog and the admin console rendered only an icon and announced as nothing but "button" or "link": delete a caption, remove a layer, move a layer up or down, hide a layer, clear the loaded audio, remove an uploaded image, bind a control to the audio, close the share dialog, go back in the help centre, and open a saved project from the library. Each now names the thing it acts on, and the caption and layer controls name the specific caption or layer rather than saying "Delete". - Fixed: The eight genre cards on the Audio Library were unreadable on the light theme. Every one used a colour picked for dark editor chrome, and the track count under each name was dimmed on top of that, which no colour choice can compensate for. They are light-first now and the dimming is gone. - Fixed: The "Start here" badge on the home page, which only a first-time visitor sees, put white 10px text on a shade measuring 3.62 to 1. The category cards on tutorial pages jumped from the page heading straight to a third-level heading, so anyone navigating by heading heard a section that was not there. Both fixed. - Improved: The RSS link in the footer was 20 pixels wide against a 24-pixel minimum on every page of the site. The previous pass raised the height of these links and left the width, so the narrowest label stayed under the bar. - Improved: The accessibility sweep no longer excuses four things it had already fixed: colour contrast on the blog index, the status page and the home page, and the unnamed button on the editor. Every one of those exemptions outlived its defect, and a new fault in any of those places now fails the build. ### v4.5 — Every Control Named, Every Label Readable (2026-09-03) A browser drove every public route at desktop and phone width and checked what a person actually meets: whether a control says what it does, whether a label can be read against the colour behind it, and whether a link is big enough to hit with a thumb. - Fixed: The synth on Audio Effects announced ten sliders in a row as "slider" with nothing saying which parameter, because each caption was a plain span sitting next to the input rather than a label attached to it. Every parameter now has a real label, the caption is a click target that focuses its slider, and the formatted readout is announced with the value so "3.00" is heard as the seconds it means. The four dropdowns had the same fault, and two of them are both called Waveform. - Fixed: Category badges on the sound-effect presets put white 9px text directly on each preset's own gradient, and those gradients are chosen for the card wash rather than for legibility. Ten of the thirty-one stops in use left the label under 4.5:1, the worst at 1.81:1. A subtle scrim behind the text takes the worst case to 5.43:1 while the badges stay visibly different colours. - Fixed: Overlay category chips were unreadable on the light theme, measuring between 1.45:1 and 1.86:1 on a white card. The same four-entry colour map had been copied into the gallery, the detail page and the editor panel, all three carrying shades picked for dark editor chrome. There is now one module, and the chips are light-first with a dark shade of their own. - Fixed: Difficulty pills, blog accent chips and the browser/server capability pills all used a single 600-level shade for both themes. Measured against the tinted backgrounds they actually render on, nearly all of them failed: amber at 2.84:1, emerald at 3.19:1, cyan at 3.17:1. They are light-first now, with amber a step darker again because 700 lands four hundredths under the bar. - Fixed: The footer's eight legal dividers were pipe characters, so a screen reader read out eight vertical lines between the links and they landed in any copy of the page text. Painted in the border colour they measured 1.25:1, and they accounted for 608 of the site's 956 contrast findings. They are 1px rules now, out of the text layer entirely. - Fixed: Footer column headings were h4 with no h2 or h3 above them anywhere in the footer, so every page in the site reported a heading-level jump. They are h2, which is the level they always were semantically. - Improved: The bottom-bar footer links and the Classic and Studio links on every engine mode card were 16 to 20px tall, under the 24 by 24 minimum, in the two places on the site where many links sit in a tightly wrapped row. They now clear it without moving anything else. - Improved: The audio library's twelve play buttons were icon-only and announced identically; each now names its track and reports whether it is playing. Two search fields that relied on a placeholder for their name, which disappears the moment anyone types, have real labels. ### v4.4 — Three New Engines, Beat Smoothing That Smooths & the Reference Pages (2026-08-08) The catalogue grows to thirteen engines, the beat-smoothing control is connected to the envelope it always claimed to govern, the tunnel finally fills the frame, and the site gains accessibility, security, press, status and tool-map pages plus machine-readable feeds. - New: Three new engines with six modes each — Lattice (kaleidoscope, tessellation, wire polyhedron, isometric grid, truss web, prism stack), Terrain (ridge lines, wire mesh, contour map, canyon scroll, dune field, peak silhouette) and Stage Lights (beam fan, laser sweep, spot rig, par wall, strobe bars, follow spot). All three run on the shared beat clock and renderer, so preview, editor and export match as they do everywhere else. - Fixed: Beat smoothing did nothing. The slider fed an averaging path that no engine ever called, while the envelopes that actually reach the screen used fixed decay times — so the one control named for the hard-pulse complaint could not affect it. It now sets the envelope directly, the shipped default rings out noticeably softer than before, and two new controls (Beat attack, Beat release) expose the shape explicitly. - Fixed: Warp Field ignored the beat. It read only the continuous energy level, so it drifted while every other Tunnel mode hit; streaks now brighten, thicken and lurch forward on the beat they were born on. - Improved: Tunnel rings are sized against the frame instead of falling out of the depth setting, so the corridor fills the screen and rushes past you rather than sitting as a small motif in the middle. Depth now controls speed through the corridor, not how big it is. - New: Creator Studio opens with a bundled demo track and a New-composition action, so a fresh session has something to react to. The Classic editor deliberately does not inherit it. - Fixed: Quick Start no longer opens itself over the homepage on a first visit. It is a button in the hero, marked for first-time visitors, and opens when you press it. - Fixed: The offline/install layer never started on /editor and /studio: the service worker was blocked by the isolation headers those two routes send, and the failure was silent. Both now register. - New: New pages: Accessibility, Security, Press Kit, System Status and a Tool Map covering every public route. Every retired visualizer URL redirects to its replacement, and an id that was never published now returns a real 404 instead of a soft one. - New: Machine-readable everything: a site-wide RSS feed, a tutorials feed alongside the existing blog feed, and an llms.txt describing the product and the full engine catalogue for AI assistants. - Improved: Accessibility: a skip link on every route, exactly one main landmark per page, and an automated axe sweep over fifteen pages that fails the build on new WCAG A/AA violations. Outstanding gaps are listed openly on the Accessibility page. - Improved: Every page's share image is generated from the catalogue and checked to be unique — no two routes serve the same card, and none of them is a stale committed PNG. ### v4.3 — AdSense-Only Monetization (2026-07-29) Marketing pages now use Google AdSense Auto Ads only. Adsterra display units, Social Bar, Infolinks, footer smartlinks, and export sponsor tabs are removed for a brand-safer experience. - Improved: Default production ad network is Google AdSense; set NEXT_PUBLIC_AD_NETWORK=none to disable ads entirely. - Fixed: Removed Adsterra banners, native units, Social Bar overlays, Infolinks, and export Direct Link tabs that were serving dating and other brand-unsafe creatives. - Improved: Privacy, cookies, ads.txt, and marketing CSP now describe and allow only Google AdSense. ### v4.2 — Real Reactivity, Containment & the Logo Engine (2026-07-26) Engines now respond to what the music is actually doing instead of pulsing in unison: band levels are normalized per song, beats come from a full-track analysis, motion is bound per element, and nothing leaves the frame when a track peaks. Adds a tenth engine built around your own artwork. - Fixed: Bass, mid and treble levels were pinned at maximum whenever audio played, so every engine had only one thing to react to — the beat. All three now carry real dynamics, which is what makes lows, mids and highs drive visibly different elements. - Improved: Beat detection is normalized per song rather than against fixed thresholds, so a quiet acoustic track and a loud master both land on the beat. Loading a file also runs a one-off full-track analysis for a beat grid that stays locked through tempo changes. - Fixed: Content no longer leaves the frame when the music gets loud: radial rays, bloom petals, spectrum peaks and the waveform depth stack are all bounded, so a peak is expressive instead of clipped. - New: New Logo engine with six modes — waveform ring, spectrum halo, orbiting bars, particle aura, pulse frame and kinetic reveal — each reserving a safe zone so your artwork stays clear. - Improved: Engine revamps: tunnel rings now carry the moment of music they were born on toward you, trail comets enter from all four edges instead of sharing one heading, bloom cells hold still instead of flickering, and characters animate individually rather than all changing on the same frame. - Fixed: Oscilloscope Lissajous drew a straight line because both axes came from the same signal; it now uses a true quadrature channel and traces real looping figures. The mirrored waveform and mirrored spectrum modes were drawing their reflection on top of the original — both are now actually mirrored. - Improved: Every control in both editors is verified to change the render by an automated pixel-difference check, and text controls like the Character Motion lettering are finally editable in the Classic editor. - New: Cookie consent is now region-aware: visitors in the EEA, UK and Switzerland are asked before any advertising or analytics runs, and everyone keeps a one-click opt-out. ### v4.1 — Beat-Locked Engines, Unified Controls & Site Polish (2026-07-24) All nine engines now lock to one deterministic beat clock with upgraded visuals, every panel control actually changes the render, Studio's node graph travels with exports, and a site-wide polish pass fixes sign-in prompts, white screens, redirects, share cards, and performance. - Improved: Engine-wide beat-sync overhaul: Particles, Trails, Bloom, Character Motion, Radial, Spectrum, Bars, Tunnel, and Waveform all follow one deterministic beat clock, so hits land on the beat identically in preview and export — with per-engine visual upgrades across all nine. - Improved: Controls unified: every control in the panel now applies to the render, with the legacy 3D/4D/ADV panels folded into real, working controls instead of dead toggles. - Fixed: Studio node graph: Merge and Math nodes accept both of their inputs, effect nodes evaluate correctly, and exported files now include the full graph. - Improved: Templates reseeded with tuned defaults so every engine and mode opens looking its best. - New: Bundled original preview music so you can audition any visualizer instantly without uploading a track. - Fixed: Removed the automatic login prompt — sign-in now appears only when you explicitly click it. - Fixed: Template detail pages no longer white-screen, blog links redirect correctly again, and social share cards render with the right images. - Improved: Site performance pass: a faster bloom pipeline and a live-preview slot budget keep pages with many previews smooth. - New: Breadcrumb navigation and a share panel on content pages, plus SEO and metadata corrections across the site. ### v4.0 — Shared Visualizer Platform (2026-07-22) Nine versioned engines, one deterministic composition runtime, rebuilt Studio and Classic workflows, durable saving, secure accounts, and the free creator community. - New: Nine canonical engines and 54 editable modes backed by one NovusComposition v1 contract across editors, previews, captures, and exports. - New: Studio layers, nodes, timeline, inspector, geometry, assets, and 2D/3D character rigging; Classic now edits the same document without flattening advanced data. - New: Free username/password accounts with optional passkeys, single-use recovery codes, Turso revisions, private assets, profiles, sessions, notifications, and a unified creator library. - New: Explicit immutable community publishing, public preview derivatives, creator pages, reactions, follows, comments, moderation, and attributed remixes. - Improved: Admin access now uses normal account roles, mandatory passkey step-up for privileged actions, and immutable audit entries. - Improved: Homepage, template pages, help, legal copy, captures, redirects, and documentation now describe only the shared engine platform. - Fixed: Removed billing, subscriptions, entitlements, and export quotas. Novus remains free and guest export remains available. ### v3.3 — Native Header + Side Rails (2026-07-21) Content pages now open with a Native Banner header and wide-screen side rails (160×600 / 160×300), with denser mid-page and footer display units — still no Social Bar or pop-unders. - New: Sitewide Native Banner under the top nav on content pages (once per page). - New: Sticky left 160×600 and right 160×300 display rails on xl+ screens around page content. - Improved: Raised the per-page ad budget and retargeted the footer toward 468×60 / 300×250 so more unique banner sizes can show without duplicate keys. ### v3.2 — Calmer Ads: Top Banner, No Social Bar (2026-07-21) Removed the intrusive Social Bar notification widget, added a reserved top leaderboard on content pages, and raised in-content ad density while keeping native mid-page and no pop-unders. - Improved: Removed Adsterra Social Bar (corner notification) for a calmer browsing experience. - New: Sitewide top leaderboard on content pages (728×90 desktop / 320×50 mobile), consent-gated and off workspaces. - Improved: Raised the soft per-page display budget so mid-content native and banner slots can show alongside the top banner. ### v3.1 — Adsterra Monetization Test (2026-07-21) While waiting on AdSense approval, content pages run Adsterra display and native ads (consent-gated, density-capped) with no pop-unders or interstitials. - New: Adsterra as the default production ad network (env-switchable back to AdSense later), with native and banner units plus a discreet footer Sponsored link. - Improved: In-content ad slots revived with a per-page budget and unique unit keys so the same ad key never mounts twice on one page. - Improved: Ads stay off editor, studio, auth, admin, legal, pricing, and settings routes; advertising scripts wait for cookie consent. - Improved: Privacy, terms, cookies, ads.txt, and robots updated for the Adsterra test while keeping the Google seller line for future AdSense approval. ### v3.0 — 24-Family Engine Rebuild + Creator Studio (2026-07-20) Clean category separation, 96 dedicated dimension engines, and a new Studio for authoring packs that open in the music editor. - New: Creator Studio at /studio — blank canvas, geometry nodes, environments, click-track bindings, safe expressions, and .novusvis pack export/import into the music editor. - New: 24 distinct visualizer families × 2D/3D/4D/ADV (96 engines) with Spectrum and Bars fully separated — no mixed categories, no mode dropdowns. - Improved: Music editor, captions/Whisper, audio SFX, Cover Art studio, overlays, lyric videos, themes, reaction/FFT controls, and export pipeline preserved and wired to the new catalog. - Improved: Help, marketing, and README copy updated for the 24×4 catalog; thumbnail inventory regenerated for all live engines. ### v2.16 — Visualizers Come Alive: Full Reactivity Overhaul, Robust Lyrics & Complete Template Pages (2026-07-18) The biggest visual upgrade yet: every 3D, 4D, and Advanced visualizer now reacts across the whole scene — individual elements respond to their own part of the music, nothing sits still, and scenes fill the frame. Lyric generation is far more robust, template detail pages show every variant and mode, and preview images are refreshed to match. - Improved: Major reactivity overhaul across every 3D, 4D and Advanced visualizer: instead of the whole scene pulsing as one, individual elements — bars, particles, rings, bulbs — now each respond to their own slice of the frequency spectrum, keep a gentle idle motion so the scene stays alive between beats, and burst on every hit. There's always something happening on screen. - Fixed: Advanced and evolving visualizers that used to show a small centered shape (or occasionally a near-empty frame) now paint rich, frame-filling scenes that cover the whole canvas from the first frame. - Improved: The 2D visualizers — already the strongest tier — got a light polish pass: subtle idle motion so they breathe at silence, sharper on-beat events, and fuller frame coverage. - Fixed: Template detail pages now show the complete set of 2D / 3D / 4D / Advanced variants and all their modes. Previously some 4D and Advanced templates only listed a partial selection — every family now links across all four dimensions. - Fixed: Static preview images load reliably when moving between templates and switching dimensions: a canceled image request now recovers on its own instead of leaving a blank tile, and revealing a hidden dimension tab always shows its previews. - Improved: Lyric generation is much more robust. 'Isolate vocals' no longer hangs on unsupported hardware — it now detects real GPU support up front, disables the option where it can't run, and always falls back to the full mix so generation never stalls. Transcription runs faster on capable GPUs, word timing snaps to detected beats, and repeated or misheard filler words are filtered out. - Improved: Refreshed preview stills across all the upgraded visualizers so the gallery reflects the new, richer scenes. - Improved: Behind-the-scenes security hardening and dependency cleanup for a safer, leaner app. ### v2.15 — Cleaner Ads, Sharper Previews & a Steadier Canvas (2026-07-16) Advertising moved to Google AdSense with every interstitial, pop-under, and push format removed for a calmer experience. Template previews load far more reliably, the Quick Start catalog renders correctly again, and the editor canvas stays locked in when you change aspect ratios. - Improved: Advertising moved to Google AdSense (Auto Ads). All interstitial, pop-under, vignette, and push-notification ad formats are gone — including the export-click pop-under — so nothing interrupts your workflow. Ads respect your consent choices under GDPR/UK rules. - Fixed: The editor canvas no longer shrinks into the corner when you change aspect ratios — visualizers stay locked to the full frame at every shape and zoom. - Fixed: Quick Start shows its full visualizer catalog again: preview cards had collapsed to thin lines on some systems; they now render at full size with their preview stills. - Fixed: Template preview images load much more reliably: stills just below the fold now preload as you scroll, a canceled image request retries instead of leaving a blank tile, and switching between 2D/3D/4D/ADV never strands a missing preview. - Fixed: Template detail pages keep an engine-accurate poster behind the live preview — rapid navigation between templates or dimensions no longer flashes a black box. ### v2.14 — Accurate Catalog, Smarter Categories & a Steadier Editor (2026-07-09) A round of accuracy and polish: the docs now list every one of the 58 engines, browse-by-category is smarter about particle-style visualizers, the homepage makes all the creative tools easy to find, and the editor keeps the canvas rock-steady while you work. - Improved: The full engine catalog is documented accurately: the Visualizer Engines guide now lists all 58 active families — including Barcode, Countdown, and Oscilloscope, which were missing before — across 2D, 3D, 4D and Advanced. - Improved: Smarter browse-by-category: particle-style visualizers that were filed under the wrong heading — Spectral Rain, Snake Trails, Dust Storm, Spectral Fluid, and the Hyperspace star-warp — now show up under Particles, so what you see matches the category. - New: Easier tool discovery on the homepage: a refreshed "More Ways to Create" section surfaces the Audio Library, Lyric Video Creator, Audio Effects (SFX) Generator, Stream Overlays, and Cover Art Studio all in one place. - Fixed: The editor canvas no longer nudges when you toggle intros/outros or adjust layers — the timeline and layer previews keep the visualizer still and aligned. - Improved: Cover Art & Canvas Studio polish: a roomier effect picker, a clearer "turn any visualizer into a loop" funnel, and a de-cramped studio layout. - Fixed: Cleaner exports: ads no longer fire repeatedly after an export or bounce you off the homepage. ### v2.13 — Fully Guest-Only, a Leaner Curated Library, Cover Art Studio & Editor Fixes (2026-07-05) Novus is now completely account-free — create, customize, and export entirely in your browser with nothing to sign up for. We tightened the engine library to a curated, high-quality set, rebuilt Albums into a Cover Art & Canvas Studio, and fixed a batch of editor annoyances. - Improved: No accounts, ever: sign-up, login, and saved-to-the-cloud are gone. The editor, templates, SFX, and cover art are one-time-use and export-only — your work stays on your device, and every export is yours. Privacy, terms, and cookie policies were updated to match (no auth cookies). - Improved: A leaner, curated engine library: we retired lower-performing and near-duplicate visualizer families so every remaining engine earns its place. The catalog now stands at 58 active engine families across 2D/3D/4D/Advanced, with 7 flagship optical-illusion families. Old links to removed styles redirect to the closest surviving engine. - New: Cover Art & Canvas Studio (formerly Albums): a guided, one-off tool for square streaming covers and vertical Spotify Canvas loops — layered text, backgrounds, and animated effects, exported as a high-res PNG or a silent looping MP4. The old /canvas page now redirects here. - Fixed: Editor elements no longer get stuck: text, logos, and overlays could become undraggable until a refresh after a resize gesture — they now recover automatically and stay movable. - Fixed: No more box/halo around the visualizer: scaling the canvas over a custom background, image, or transparent mode no longer shows a bordered frame — the scene blends edge-to-edge in preview and export. - Fixed: Generate Markers no longer freezes the editor, help tooltips are readable again (opaque background), audio duration never shows "Infinity:NaN", and template pages open at the top instead of scrolled down. - Improved: Ad network moved to Monetag/PropellerAds (non-personalized), keeping the whole app free with no account required. ### v2.12 — Open to Everyone + a Real Fix for Fast, Flickering Bars (2026-06-23) The whole site is now open to guests — create and export visualizers free, no account needed, and post to the community as a guest. Plus a root-cause fix for spectrum-style visualizers pulsing/flickering too fast, with a new Reactivity control that's calm and smooth by default. - New: Guests can create AND export for free: you no longer need an account to export your visualizer — the whole editor, all engines and exports are open to everyone. (Sign in only to save projects, build a library, or manage posts.) - New: Guests can post to the community: publish a visualizer straight from the editor as a guest (you pick a display name, shown as a Guest). Browsing and posting are free; sign in to like, save, follow and manage your posts. - Fixed: Spectrum-style bars no longer pulse/flicker too fast: a reactivity change had every engine read an auto-leveled spectrum that amplified quiet-band noise into a fast flicker. That's removed at the source across all three places engines read audio (the full spectrum, the 32-band path, and the per-beat pump), so bars move with the music instead of strobing — in the preview and the export. - New: New "Reactivity" control (calm by default): a single slider sets how hard every visualizer reacts. It's low/smooth out of the box so bars glide when a song loads; turn it up for a snappier, bouncier response. Applies live to the preview and to exports identically. - Improved: Bars play at full height AND smoothly: calming the reaction no longer shrinks the bars — they snap to their full peak on each hit but fall gently, so you get smooth motion without losing range. Mid and treble are also better balanced against heavy bass. - Fixed: Fixed a crash on some engines: a handful of visualizers (e.g. neon/cyan glow styles) could throw an invalid-color error and freeze on a strong beat — alpha/color values are now clamped safely across the engine library. ### v2.11 — Free Editor, Full-Bleed Canvas, Sharper Exports & Reliable Accounts (2026-06-22) Guests can now open and test any template in the editor (sign-in only at export), the canvas fills the frame with no box, exports look noticeably sharper, intros/outros size correctly at every resolution, and the account pages, mode pickers and overlay previews all work reliably. - New: The editor is open to everyone: you no longer need an account to open a template and try the editor — sign-in is only required when you export. Guests can explore every control first. - Fixed: Account & Community settings and the dashboard load reliably: a 500 error on the analytics endpoint (wrong table) and a 404 on the profile endpoint (missing-row) were breaking those pages — both are fixed (analytics degrades gracefully to zeroes, and a profile is synthesized from your session when no row exists yet). - Fixed: The account menu navigates on the first click: the Creator Studio / Account & Community / Creator Profile links (and the Explore/Tools menus) now navigate immediately instead of occasionally doing nothing — they were being dropped when the menu closed mid-click. - Fixed: Canvas Size & Fit is full-bleed: scaling the visualization no longer shrinks it into a boxed frame with a background border. Scale now zooms the content within a full-frame canvas (and panning keeps it fully covered), so it always blends edge-to-edge — in both preview and export. - Fixed: Intros & outros are the right size everywhere and no longer hidden behind bars: the title card now scales with the output resolution so it looks the same in the preview and a 4K export (it was tiny in 4K before), and the cinematic letterbox bars that covered the text are off by default. - Improved: Sharper exports: the export bitrate was raised across the board (and matched on the fallback path), removing most of the softness/blockiness that made exports look lower quality than the preview. True 4K is available for every aspect ratio. - Fixed: Mode pickers are complete: the Geomesh Prism template now exposes all 10 of its modes (it was showing only its styles), and Terrain 4D gained its 10th mode (Tectonic Rift). - Fixed: The Beat Grid animates across its full width: the left columns no longer sit dead — each column now normalizes to its own level so the whole grid responds to the music. - Fixed: Overlay previews render again: the overlay library / gallery / detail previews were collapsing to zero height (a CSS conflict) and showing blank — they now display their animated preview. Template cover images also retry once on a transient load failure before falling back to a gradient. ### v2.10 — Editor Controls That Actually Land (2026-06-22) A correctness pass on the editor: Animation Speed now controls every visualizer, the reactivity amount and beat-effect sliders make a visible difference, and the on-the-beat screen flash now obeys its Beat-Flash toggle across the whole library instead of always playing. - Fixed: Animation Speed now works on every visualizer: ~70 engines were quietly running their own internal animation loop at a fixed speed on top of the editor's, so the Animation Speed slider barely changed them. They're now driven by a single timeline, so Animation Speed (and the smooth, even motion it guarantees) applies everywhere — preview and export identically. - Fixed: The Beat-Flash toggle is finally respected everywhere: ~165 visualizers painted a full-screen flash on every beat that ignored the editor's Beat-Flash switch — so the whole frame strobed even with it turned off. That flash now only plays when you enable Beat-Flash (the per-beat glow on shapes is unaffected). Applies in both preview and export. - Improved: The Reactivity / Pulse amount now visibly changes how hard visualizers react: turning it up makes the motion pulse harder with the music and down calms it — applied across the whole library through the shared audio path, live as you drag the slider. (Beat detection is untouched, so timing stays locked to the beat.) - Improved: Mirror Wave honors its effect controls: Pulse, Burst, Transient, Animation Speed and the Beat-Flash toggle now all produce a clear change on the Mirror Wave family (2D/3D/4D/Advanced) — previously several of these did nothing on it. - Fixed: Frame motion no longer goes dead in quiet passages: with the beat-shake / pulse / tilt / drift sliders dialed up (e.g. on Blackhole), the camera motion now keeps moving through low-energy sections instead of freezing between beats — while detected beats still clearly dominate. Preview and export match exactly. ### v2.9 — Smoother, Beat-Locked Reactivity (2026-06-22) A reactivity pass so visualizers move smoothly with the music instead of twitching — bars rise and fall cleanly, heavy bass no longer slams, and over-fast spins were calmed, all without changing how effects lock to the beat. - Improved: Visualizers move smoothly, not jittery: the audio levels that drive motion are now smoothed at the source with a fast-attack / slow-release curve, so every visualizer that reacts to bass/mid/treble tracks the music cleanly instead of flickering frame to frame. Heavy bass is gently soft-compressed so a loud kick no longer makes the whole visual slam. Beat-synced effects are unchanged — they still land exactly on the beat. - Improved: Spectrum bars read as real levels: bars now rise quickly but fall gently, so you can actually see them move up and down instead of strobing. Treble is no longer over-boosted. - Improved: Optical-illusion spins calmed: the colour-illusion spinning modes (Benham disc/sphere across 2D/3D/4D/Advanced) were rotating too fast and looked choppy — they now spin at a smooth, watchable speed. ### v2.8 — Rock-Solid Browsing & a Connected Creator Community (2026-06-21) The navigation freeze is fixed for good, creator profiles and storefronts open reliably, public profiles show usernames only (never your email), the community is wired together with working search & sort, and album covers display correctly again. - Fixed: Navigation freeze fixed at the source: clicking a template after switching a 2D/3D/4D or mode pill could leave the whole site unable to navigate (clicks did nothing until a full page refresh). The cause was the address-bar update on those pills putting the app's router into an inconsistent state; it now updates the URL the correct way, so browsing stays responsive no matter how much you click around. - Fixed: Template detail pages load reliably: a template page could occasionally get stuck on its loading skeleton on a slow first open. The page now does far less work per request (its mode index is built once and reused), recovers gracefully if anything goes wrong instead of hanging, and if a load is genuinely slow it offers a one-tap Reload rather than leaving you waiting. - Improved: Optical-illusion visualizers play smoother and look better: every illusion engine (colour, geometric, grid, illusory-contour, impossible-figure and their 3D/4D/Advanced variants) now smooths the audio it reacts to, removing the frame-to-frame jitter that made some of them shimmer or stutter. The Grid Illusion's first three modes are now visually distinct (a clean Hermann grid, a dotted scintillating grid, and a thin-line extinction lattice), the Kanizsa illusory-contour shapes now form the way the real illusion does — from the notched inducers alone rather than being drawn outright — and the impossible figures gained depth, a reactive backdrop and consistent motion so they feel like a finished piece rather than a lone shape. - Fixed: Creator profiles & storefronts open reliably: the "View public profile" / "Your storefront" links from Creator Studio, the dashboard and the community no longer hit a 404. All profile links now use the same canonical address the public page expects. - Fixed: Privacy: public creator profiles, page titles and social share images now show your display name or username only — never your email address. Email is no longer included in any public profile data. - Improved: A connected community with real browsing: post and comment authors now link straight to that creator's storefront, the Top Creators links work, and the community feed gained working search and Most-Liked / Most-Viewed sorting (the sort options previously did nothing). - New: Account menu: signed-in users get an account dropdown in the top bar with direct links to Creator Studio, Account & Community settings, and the Creator Profile / Storefront editor — so it's clear where to manage everything. - Fixed: Album covers display correctly again: uploaded album art is now stored durably instead of as a temporary link that broke on reload, so covers show on the My Albums grid and the album editor. Applying a canvas effect no longer flashes the whole album page like a reload. ### v2.7 — Smooth Playback Everywhere — The Heaviest Visualizers Run Fast (2026-06-21) A deep performance pass across the visualizer library: dozens of the most demanding engines — optical illusions, particle and fluid fields, neon grids, crystals and more — now play back smoothly at full frame rate, and the post-pause preview stutter is gone. - Improved: Major speedup across the heaviest visualizers: 75+ demanding engines — optical illusions and op-art, cymatics, particle/fluid fields, neon grids, circuit boards, stained glass, DNA helix, neural nets, plasma webs, bioluminescence, holospheres, tunnels, mandalas, gravity wells and more (including their 3D/4D/Advanced variants) — were re-engineered to draw far more efficiently, collapsing hundreds-to-thousands of per-element glow operations into a handful per frame. Previews, the editor and exports now stay smooth at full frame rate. - Improved: Glow that's fast: the bloom on glowing engines (particles, crystals, neon, bioluminescence) is now produced with a lightweight two-pass technique instead of an expensive per-element blur — keeping the look while cutting the cost dramatically. - Fixed: No more post-pause stutter: pausing and resuming a preview no longer leaves the visualizer jittering. The cause — phantom beats firing on the locked tempo grid while the track was silent — has been fixed, so paused previews settle to a clean idle. - New: Built-in performance overlay for troubleshooting: an optional on-screen FPS / worst-frame-time HUD (plus console diagnostics) can be turned on to help diagnose playback smoothness on your device — off by default. ### v2.6 — Optical Illusions Flagship — 10 New Engine Families, Every Mode Shareable (2026-06-20) A brand-new flagship collection of audio-reactive optical-illusion visualizers — moiré, impossible figures, op-art, spirals and more — plus every visualizer mode now has its own shareable link and social preview image, and template previews load faster and smoother. - New: Optical Illusions flagship: 10 new engine families — Moiré, Impossible Figure, Op Art, Geometric Illusion, Peripheral Drift, Grid Illusion, Illusory Contour, Spiral Recursion, Color Illusion and Ambiguous Figure — each shipping 2D, 3D, 4D and Advanced variants with 10 distinct, fully audio-reactive modes (400 new modes in all). Featured on the homepage and the Templates gallery. - New: Every mode is now its own page: each visualizer mode (across the whole library — 5,000+ modes) has a unique, search-engine-indexable URL with a tailored title and its own social preview image, so you can link or share a specific look, not just the engine. - Improved: Faster, smoother previews: hover previews are restored on touch-capable laptops, 3D/4D/Advanced previews run at full quality, and the template grid no longer stalls or needs a double-click — the result of more accurate device detection and fewer simultaneous live previews competing for the GPU. - Fixed: Fixed a handful of new illusion modes that could render blank or freeze the canvas (a drawing-radius edge case) — every mode now renders correctly. ### v2.5 — Exports Match the Preview — Brighter, with Every Glow Intact (2026-06-19) Exported videos now look just like the editor preview: the same brightness and colour, and glowing details like pulsing fiber-optic bulbs, neon halos and bloom render at full strength instead of shrinking away at higher resolutions. - Fixed: Export visual parity: high-resolution exports are no longer dimmer than the preview, and bright glowing elements (fiber-optic bulbs, neon glow, sparks, bloom) that appeared faint or missing in 4K exports now render at full size and brightness — matching what you see in the editor. - Improved: Visualizers are drawn at a consistent visual scale for every quality tier, so 1080p, 1440p and 4K exports look identical apart from sharpness — the higher tiers are crisper, not dimmer, with all the fine glowing detail preserved. ### v2.4 — 4K Exports Everywhere, Instant Navigation & Single-Click Browsing (2026-06-18) Export any shape at true 4K with a quality choice, the beat flash now pulses for the whole song in both preview and export, browsing opens on a single click without freezing, the editor canvas stays interactive, and dashboard/profile/community navigation is instant. - New: Export at true 4K for every shape: resolution is now chosen as Shape (16:9, 9:16, 1:1, 4:5, 4:3, 21:9) × Quality (1080p / 1440p / 4K), so portrait, square and cinematic exports all reach full 4K — not just landscape. If a browser can't encode an oversized size it steps down gracefully instead of dropping to a lower-quality capture. - Fixed: Beat flash plays for the entire song: it no longer fades out after a couple of seconds (or only fired on pause/restart). Once the tempo is detected it keeps pulsing on the beat in both the preview and the exported video. - Fixed: Single-click browsing: template cards now open on the first click even after using the browser Back button or navigating quickly — fixed the focus/preview race that dropped the first click and required a double-click. - Fixed: No more freezing during rapid navigation: a graphics-context leak that piled up while flipping quickly between templates and pages — eventually freezing the page — has been fixed. - Fixed: Editor stays interactive: fixed a case where the editor canvas could fail to load and you couldn't move text or elements; the main visualizer is now always given the graphics context it needs. - Improved: Instant navigation: the Dashboard, Profile and Community pages no longer re-fetch from the database every visit, so moving between pages is immediate instead of waiting on a load each time. ### v2.3 — Reactive Exports, No-Freeze Browsing & Every Mode Renders (2026-06-17) Exported videos now react to your music just like the preview, browsing many visualizers no longer freezes, every engine mode actually renders (no more blank options), reactivity feels alive instantly, and template/homepage previews are fixed. - Fixed: Exported videos now react to the audio — the visualizer in your MP4 dances to the track just like the preview, instead of looking static. - Fixed: No more freezing while browsing: graphics contexts are now released the moment a preview goes away, so flipping through templates, detail pages and the homepage stays responsive instead of locking up after a handful of visualizers. - Fixed: Every visualizer mode renders: engine mode menus were advertising options that drew nothing (blank) while hiding modes that actually exist. Menus now match what each engine really renders — e.g. Gravity Well 2D shows its 10 distinct modes — across the whole library. - Improved: Reactivity feels alive immediately — removed the 3–5 second 'warm-up' where engines played a different effect before settling, and the beat flash now keeps pulsing for the entire song instead of fading out after a few seconds. - Fixed: Template browse cards now show a real preview image of each engine before you hover, instead of a blank gradient. - Fixed: Homepage showcase fixes: the Spirograph fills the frame (no black gaps), the Radial Spectrum renders correctly, a duplicate engine in 'Explore Engine Families' was replaced, and the engine cards open on a single click. - Improved: Mobile editor is usable: the toolbar is compact (actions scroll in one row instead of stacking), the settings pane keeps a real, scrollable height, the play bar no longer covers your controls, and you can reach upload and every setting. - Fixed: Intros and outros now play smoothly in the preview — the animation follows the audio clock each frame instead of stepping, matching the already-smooth export. - Improved: Lyrics: a new timing-offset slider nudges karaoke earlier/later to fix highlighting that runs 1–2s behind, and the karaoke word highlight now uses your chosen caption style and colour (in both preview and export) instead of plain white. ### v2.2 — Backgrounds Behind Visualizers, Engine-Accurate Previews & Livelier Defaults (2026-06-17) Visualizers now play over your chosen background image, gradient, or underlay; every template and visualizer page shows a real preview of the actual engine (including link/social previews); default reactivity is livelier; Global Speed reaches more engines; and the editor is cleaner. - New: Background transparency: visualizers now play OVER your background image, gradient, or underlay instead of hiding it — with an Auto / Solid / Transparent control — turning the background into a real compositional layer across all 444 engines, with overlays and underlays layering correctly. - New: Engine-accurate previews: template cards, template detail pages, and the visualizer guides now show a real captured frame of each engine, so you see exactly what you'll get before opening the editor. - New: Engine-accurate link & social previews: sharing a template or visualizer now shows the actual engine in the Open Graph image, with tailored titles and descriptions on every visualizer, template, and help page. - Improved: Livelier out-of-the-box reactivity: beat-driven motion (shake, pulse, tilt, drift) is more visible at default settings while flashes are gentler — visualizers look great without tweaking, and the preview matches the export. - Improved: Global Speed now affects more engines: the speed control reaches animation rates across many more visualizers, including the 4D evolution rate, and Frequency Focus drives reactivity on every engine. - Improved: Cleaner editor: removed the SFX presets panel from the editor (the standalone Audio Effects tool is unchanged). ### v2.1 — All-Visualizer Reactivity, Export Parity & Pre-Export Review (2026-06-16) Every visualizer now reacts across the full frequency range (not just bass), exports match the preview exactly — correct size and every effect baked in — a new pre-export panel lets you review and toggle effects, template browsing is snappier, and AI lyrics load reliably. - Fixed: Every visualizer now reacts to mid and treble, not just bass — a new normalized reactive spectrum lifts quieter bands so the whole frequency range drives the visual across all engines. - Fixed: Exports now match the preview exactly: the visual is correctly sized for every resolution and aspect ratio (square, portrait, landscape, 4K) and no longer appears zoomed-in or cut off at the top. - Fixed: All chosen effects are now applied to exports — pulse/burst intensities, per-band FFT colours, and frame motion (beat shake, pulse, tilt, drift, zoom, strobe and glow) are baked into the video just like the preview. - New: Pre-export review panel: before exporting, see resolution, aspect, frame rate, format and duration, plus every active effect — and uncheck any you want to leave out. - Fixed: Template carousel and grid now open on a single click — fixed a stuck overlay state that caused double-clicks, 5–10s delays and occasional freezes that needed a refresh. - Improved: Smoother browsing: live previews free their graphics contexts immediately, so scrolling through many visualizers no longer glitches or hangs. - Fixed: AI lyric generation loads its model reliably — fixed the cross-origin setup that caused the 'AI model failed to load' error — and now runs off the main thread so the editor no longer freezes while transcribing. - New: Lyrics: choose your AI model (Fast / Balanced / Accurate, auto-picked for your device) and optionally isolate the vocals before transcribing for much better accuracy on songs. ### v2.0 — Unique Visualizers, New Export Engine & Community Publishing (2026-06-13) Every visualizer mode is now visually distinct and beat-synced, a rebuilt export engine produces seekable videos that match the preview exactly, and you can publish your creations to the community right from the editor. - Improved: Every engine's modes are now visually unique and audio-reactive — no more look-alike modes across 2D, 3D, 4D, and Advanced variants, with 10 distinct modes in every family. - Improved: Colour themes now apply to every visualizer — pick a palette and the whole visual recolours to match. - New: Publish to Community directly from the editor, with public or private visibility for each visualizer. - New: Visualizer Size & Fit control — resize and re-centre any visualizer (with one-click 'Fit to frame') so it sits perfectly inside the video, in both the preview and the export. - Improved: Rebuilt video export: MP4 and WebM are now seekable with the correct duration and render the exact visual you see in the preview. - New: Spotify Canvas and cover-art formats open the editor pre-sized (9:16 loop / square) and export straight to a Spotify-ready file. - Fixed: Creator Studio now loads reliably instead of erroring on the dashboard. - Improved: Lyrics transcription, audio start-up, and page navigation are more reliable; heavy engines render dramatically faster. - Improved: Stream overlays beat-pulse on hover previews and react to your track's beats in the editor. - Improved: Refreshed mobile editor, help centre (32 guides), policies, breadcrumbs, and link/SEO previews across the site. ### v1.22 — Advanced Filter, Export & Preview Fixes (2026-06-08) The Advanced template filter now lists every advanced engine, MP4 export can't hang, overlay previews reflect live opacity, and category cards show more distinct previews. - Fixed: The Advanced (ADV) template filter and category now list all advanced engines instead of showing 0. - Fixed: Template filters (including dimension) now persist in the URL so refreshing or sharing keeps your view. - Fixed: MP4 export can no longer hang indefinitely — the converter now times out and falls back to WebM with a clear message. - Improved: Overlay previews in the editor now reflect the overlay's live opacity setting. - Improved: Browse-by-type and category cards show more distinct, tailored previews across more engine families. ### v1.21 — Previews, Navigation & Editor Fixes (2026-06-08) Single-variant previews that cycle through each engine's modes, reliable single-click navigation, and continued editor/effect fixes. - Improved: Template previews now showcase each engine's modes — hovering a card cycles through its visualization modes instead of switching dimensions. - Fixed: Opening a template now works on the first click (no more double-click or refresh needed). - Improved: Each 2D / 3D / 4D / Advanced variant is shown as its own card so you can browse every dimension of every engine. - Fixed: Previews now start smoothly and stay beat-synced — no more spurious flash/burst when the audio first kicks in. - Improved: Faster page loads — templates render instantly and database setup runs once instead of on every request. ### v1.20 — Reliability & Sharing Overhaul (2026-06-08) A foundational pass on data durability, video export, render performance, and how visualizers are shared across the web. - Fixed: Saved albums, templates, and projects now persist durably — fixed a configuration fallback that could drop user content on redeploys. - Fixed: Video export progress now always shows a sensible 0–100% (no more runaway negative percentages during MP4 conversion). - Improved: Smoother editor and export performance by eliminating costly per-frame canvas read-backs on advanced engines. - Improved: Audio now starts reliably after your first interaction on the page via a unified gesture-unlock system. - Improved: Link previews (Open Graph / Twitter cards) now resolve to the correct domain, so shared visualizers and templates preview correctly everywhere. - New: Native mobile share sheet support in the Share dialog, plus a public changelog page. - Improved: Search engine sitemap and robots rules cleaned up — public pages indexed, private pages excluded. ### v1.19 — SFX Presets & Multi-Band Beat Sync (2026-05-19) A 32-item release focused on sound design, beat detection, and album artwork. - New: Sound-effects preset library with synth pads, bass, leads, percussion and more. - New: Album cover upload so you can brand your releases with custom artwork. - Improved: Multi-band beat sync — bass, mid and treble now trigger effects independently for tighter reactivity. - Improved: FAQ and help content expanded; full feature audit across the platform. ### v1.18 — Performance, Overlays & Creator Studio (2026-05-17) A large platform release rebuilding overlays and adding creator tooling. - New: Stream Overlays system rebuilt with a curated catalog for Now Playing, Spectrum, Alerts, and Ambient scenes. - New: Creator Studio for managing your templates, analytics, and profile. - New: Lyric video wizard and global search across engines and pages. - Improved: Performance improvements, social/community features, and paginated browsing. ### v1.16 — Engine Parity & Community (2026-05-17) Engine completeness, overlay system groundwork, and community features. - New: Community feed to share and discover visualizer creations. - Improved: Engine parity pass so 2D/3D/4D/Advanced variants stay consistent. - Improved: Audio analysis and platform polish across the editor. ### v1.15 — Engine Completeness & SFX Expansion (2026-05-17) More engines, more sound effects, and a streamlined billing-free experience. - New: Expanded SFX library and additional engine variants. - Improved: Audio polish and engine completeness across the catalog. - Improved: Removed payment friction — every feature is free. ### v1.14 — Complete Platform Overhaul (2026-05-07) A sweeping update touching hundreds of files across the platform. - Improved: Platform-wide overhaul of editor, engines, and UX. - Fixed: Numerous stability and rendering fixes. ### v1.12 — Engine Variants & Variant Picker (2026-05-06) Every engine gained multiple modes with a full variant picker on detail pages. - New: All engines now offer 6+ visualization modes. - New: Variant picker on template detail pages to preview every mode. - Improved: Template grid cleanup and stability polish. ### v1.10 — Albums, Themes & Spotify Canvas (2026-05-05) Album organization, theme persistence, and vertical Canvas export. - New: Album system to group your visualizers into releases. - New: Spotify Canvas (vertical) export preset. - New: 4D engine system, cinematic suite, and LFO automation. - Improved: Theme persistence and dashboard polish. ### v1.9 — Stability, Lyrics & New Engines (2026-04-29) Stability and UX work, on-device lyrics, auth, and ten new engines. - New: Ten new visualizer engine families. - New: On-device Whisper lyrics transcription (audio never leaves your browser). - Improved: Editor effects, authentication, and preview performance. ### v1.7 — Visualizer Upgrade & Showcase Templates (2026-04-27) Engine QA, navigation fixes, and pre-layered showcase templates. - New: 29 pre-layered showcase templates. - Fixed: Navigation freezes, canvas errors, and editor parity issues. - Improved: Engine-aware audio auto-bind profiles. ### v1.0 — Public Launch (2026-04-23) The first public release of Novus Visualizers. - New: Browser-based visualizer editor with audio upload and real-time FFT reactivity. - New: Template gallery, engine mode variations, and MP4/WebM export. - New: Intro/outro canvas, resize handles, and media upload.