Skip to content

Releases

0.8.0 - Spengler

Choose a tag to compare

@figrita figrita released this 15 Apr 01:44

Silvia 0.8.0 Spengler — Patch Notes

New nodes

  • Smooth Counter — eased counting
  • XY Pad — 2D control surface
  • Color Dither — color-aware ordered dithering
  • Wavefold — waveshaping fold
  • Slime Mold — physarum-style sim
  • Cosine Gradient — palette generator
  • Lyapunov — fractal generator
  • Polka Dot — repeating dot pattern with center-sampled per-dot inputs (color, radius, softness, stagger)
  • Palette — Makes palettes with perceptual color space
  • Removed: Brownian Motion, all put in XY Pad

Audio overhaul

  • AudioScope widget with per-band exciter and improved band handle feedback
  • Screen capture audio support
  • FFT halved to 512 for snappier response
  • Audio band outputs renamed to Red/Green/Blue Band
  • Oscilloscope output ports deduplicated
  • Meter labels replaced with colored dots, scope toggle added

Node enhancements

  • Mux Number — crossfade mode
  • Tunnel 3D — texture mapping options, simplified controls
  • Cellular Automata — overhauled with flat grid buffers, trail decay, interactive preview
  • Drawing Canvas — upgraded; removed stray opacity; flood-fill + symmetry transform optimization
  • Geiss Flow — calmer default look
  • Fractal mode selector — split into separate output ports
  • Performance passes on Step Sequencer, Euclidean Rhythm, Cosine Gradient, Brick Game
  • Slime mold gets louder (more good)

Fixes

  • Mixer shader Y-flip removed (tempTexture now shares mixer FBO convention)
  • Separate output texture prevents read-write feedback on tempTexture
  • Audio analyzer no longer goes silent after switching media sources
  • Converter popup now appears when dragging Output's Frame Out onto a Number input
  • s-number rounds programmatic values to step
  • Node reset now also clears options, custom values, and custom area
  • <select> dropdown arrows render again (template inert document bug)

App / packaging

  • Linux build now ships as tar.gz with a .desktop launcher
  • First-run About modal gated behind a photosensitivity warning
  • Bundled demo clip swapped to gumbasia.webm; gumby is the default first-launch patch
  • Patch format version bumped to 0.8
  • Gumbasia license added; Will Hofferbert added to THANKS
  • _template.js rewritten as an annotated reference; orphaned tunnel.js removed

0.7.2 - Laptop rock

Choose a tag to compare

@figrita figrita released this 17 Mar 23:43

IF BROKEN, CHECK QUICKSTART. macOS and some Linux need a little care!

TLDR: This is a major architectural improvement. Previously, the biggest bottleneck on silvia, by a longshot, was GPU memory bandwidth, which made most laptops and desktops insufficient for even modest patches. This is the biggest improvement to performance yet, particularly with stable framerates on the final mixer! And performance degrades more gracefully, where interconnected outputs don't slow each other down but gracefully fallback to old frames if one is unavailable.

0.7.2

New Features

  • Palette node for extracting dominant colors via Oklab clustering
  • sRGB-to-Oklab and Oklab-to-sRGB GLSL conversion functions

Architecture

  • Shared WebGL context: Output nodes now render as FBOs in the mixer's context instead of maintaining separate GL contexts
  • Refactored textureMap to store {tex, w, h} entry objects instead of raw WebGL textures

UI/UX

  • Replaced workspace delete modal with inline confirmation in context menu
  • Nodes always come to front on pointerdown, even when clicking child controls
  • Fixed an issue with colorpickers cutting off in custom section of nodes

Fixes

  • Fixed texSubImage2D on uninitialized textures when source fans out to multiple Outputs
  • Documented demo video autoplay click requirement in howto

Misc

  • Moved camcordercrt node from Effects to Feedback category

0.7.1 - Night of the living dead mediums

Choose a tag to compare

@figrita figrita released this 17 Mar 01:45

IF BROKEN, CHECK QUICKSTART. macOS and some Linux need a little care!

Silvia 0.7.1 — Patch Notes

New Nodes

  • Brownian Motion node
  • Camcorder CRT node — with perspective tilt, brightness control, drift UI

New Features

  • MIDI settings modal — dedicated modal with device list, mappings table, and live monitor
  • Center X/Y inputs on transform/distort nodes; consolidated tunnel node
  • Wave node rework — rotation param, linear/radial modes, wiggle/ripple displacement
  • Navigate to node — click a connection tag to scroll to its source node
  • Video preview rework — native element, overlay buttons, drag-and-drop
  • Demo video — new camcorder CRT default patch with bundled video; Demo Video selectable from dropdown
  • PipeWire loopback scripts for virtual audio routing on Linux

Performance

  • Cache uniform locations and use texSubImage2D in WebGL renderer (all nodes)
  • GPU backpressure and context loss recovery

Bug Fixes

  • Fix mixer preview not clearing when output node's input connection is deleted
  • Fix GPU crash from stale captureStream mailbox handles on canvas resize
  • Fix feedback delay: ensure minimum of 1 frame instead of 0
  • Fix CSS variable names (--primary → --primary-color)
  • Fix counter wrap mode
  • Fix button positioning
  • Resume suspended AudioContext on first user interaction
  • Defer AudioContext and shadow player init until user gesture
  • Strip debug console.logs from Electron main process; fix session load

Platform / Packaging

  • Linux sandbox auto-fix (install.sh + launcher integration)
  • QUICKSTART.txt for all platforms
  • Round bottom corners of node options when custom area is empty

0.7.0-beta - the workspaces release

Choose a tag to compare

@figrita figrita released this 13 Mar 01:16

Silvia 0.7-beta

Workspaces

  • Unlimited independent workspaces in a tab bar
  • Click a tab to switch, double-click to rename, right-click for options
  • Nodes can appear on multiple workspaces — toggle from the node right-click menu
  • Cross-workspace connections show source tags on ports — click to jump to the source
  • Ctrl+T to create a new workspace, Ctrl+1–9 to switch
  • Properties modal via tab right-click to edit name, author, and description
  • Tab provenance indicator shows which workspaces have a saved source

Main Input

  • New left-side panel for global video and audio source management
  • Video: file, webcam, or screen capture with live preview
  • Audio: file, mic/line-in, or video audio with spectrum display, level meters, gain, and 3-band EQ
  • Main Input node provides video texture, bass/bass+/mid/high levels, and oscilloscope output
  • Audio meters with threshold sliders, event outputs, and frequency histogram
  • Panel collapses out of the way when not needed

Save & Load

  • Ctrl+S quick save (silent overwrite), Ctrl+Shift+S for Save As
  • Save/Save As tabs in the save modal with per-field overwrite control
  • Simplified Open modal with clear "Open" (new tab) and "Add In" (merge) actions
  • Workspaces track their save origin for quick save
  • Save all open workspaces into a single compound file
  • Load compound files to restore a full multi-workspace session
  • Drag-and-drop file upload in the asset manager
  • Inline migration for legacy save formats

New Nodes

  • Dither — ordered dithering with Bayer 2×2/4×4/8×8 and hash noise patterns, with optional pixelation
  • Smoothstep — soft threshold between two edges
  • Domain Warp — fractal noise-driven UV distortion
  • Glitch — digital glitch effects with block displacement, color channel shifting, and scanlines
  • Kuwahara — painterly smoothing filter that preserves edges
  • Pixel Sort — sort pixels by brightness/hue/saturation along rows or columns
  • Scatter — randomly displaces pixels using noise-based offset
  • Tunnel 3D — raymarched 3D tunnel fly-through with textured walls

Mixer

  • Projector controls relocated into the Mixer panel with resolution and background settings
  • Transition effects: wipe, radial, dark/light fade, checker, and lines
  • Crossfade remapped through tangent curve for smoother response at extremes
  • Removed redundant minimixer node

Enhancements

  • Edge Detection — pixel/UV sample space option for resolution-independent behavior
  • Tunnel 3D — phase accumulation for smooth speed transitions with start/stop/restart; shading option
  • Scatter — density decoupled from copy scale
  • Media nodes use textureSize() for dynamic aspect ratio — no recompile on source change
  • Main Input texture uploads deduplicated to once per frame per GL context
  • Sampling cost warnings on nodes that multiply upstream work — hover for details
  • Mixer preview labels are clickable to jump to that workspace
  • Save filename defaults to the active tab name
  • Empty workspace cleaned up automatically if "load as new" produces no nodes

Visual Design

  • Lucide SVG icons replace all Unicode/emoji iconography
  • Unified chrome button styling: icon at rest, label slides out on hover
  • Redesigned side panels with collapsible 30px headers and vertical labels
  • Restyled modals, patch cards, context menus, and tab bar
  • Redesigned asset manager to match app design system
  • Toolbar actions consolidated into an app menu (native menu bar in Electron, dropdown in web)
  • Typography normalized to generic monospace with unified line-height
  • Consistent 4px spatial grid, 2px/4px border-radius convention throughout

Fixes

  • Fixed texture binding order (activeTexture must precede bindTexture)
  • Fixed in-place mutation of cached patch data on load
  • Context menu scoped to editor area; fixed node placement offset
  • Fixed H key (hide UI) to keep WebGL canvases rendering
  • Fixed fullscreen on Linux/KDE to use native Electron API, preserving menu bar
  • Fixed right-click on node header initiating drag
  • Added Chromium flags and gl.flush() for Linux WebGL reliability

Platform

  • macOS app menu shows "Silvia" instead of "Electron"
  • Edit menu with undo/redo/cut/copy/paste
  • Post-build packaging script with launchers, icons, and zip archives for Linux, macOS, and Windows
  • SILVIA_WORKSPACE environment variable for custom workspace paths on Linux

Other

  • Renamed "Master" to "Main" and "patch" to "workspace" throughout the UI
  • Illustrated howto guide with screenshots and keyboard shortcut reference
  • Keyboard handlers guard against contentEditable targets

0.2.4 - Fixes, Builds for Win/Mac/Linux

Choose a tag to compare

@figrita figrita released this 31 Dec 20:14

Fix midi binding when selecting multiple inputs to bind. More consistently make invalid or unassigned Outputs/Channels as black. Update Output node "showing" status in some cases where it wasn't updated before.

0.2.3 - Fixes, Builds for Win/Mac/Linux

Choose a tag to compare

@figrita figrita released this 29 Dec 06:35

Fixes of some longstanding bugs, nothing new really:

  • Brought back the menu bar, for easier true fullscreen on projector and general view options
  • Added the github link
  • Saves now persist custom ranges and steps in snumber inputs in nodes
  • Fixed the counter node
  • Output nodes now have a better "status" message for where they are projecting
  • Unused mixer will inputs show as black disconnected and return to black when output closed.
  • Fixed bug where midi learn box would be left stuck open

Silvia 0.2.2 Builds

Silvia 0.2.2 Builds Pre-release
Pre-release

Choose a tag to compare

@figrita figrita released this 05 Oct 15:51

Major Changes:

  1. Patch Loader Redesign (THANKS @cheryllium!)
  2. Audio Analysis Upgrades
  • New frequency histogram visualization
  • Per-band EQ controls (frequency + Q factor)
  1. Validation
  • No longer blocks patches with errors
  • Invalid asset paths cleared instead of failing
  1. WebGL Texture Errors Fixed
  • Webcam node: black 1x1 fallback texture before camera starts
  • Screen Capture node: black 1x1 fallback texture before capture starts
  1. Alt-menu resizing removed
  2. Ctrl+zoom working properly

Silvia 0.2 Windows Build

Pre-release

Choose a tag to compare

@figrita figrita released this 28 Sep 05:13

This is a "portable" Electron application. Unzip and use anywhere. The asset and patches folders will be made alongside the .exe. Silvia cannot read from other file locations so there is less attack surface for malicious patches.