Skip to content

gurvinny/Slo-Fi


Slo-Fi

SLO-FI

A browser-based audio studio. Drop a track. The orb comes alive.


Live App


Version License TypeScript Three.js Privacy First PRs Welcome


What It Does  ·  Features  ·  Tech Stack  ·  Privacy  ·  Get Started


✦ What It Does

Slo-Fi is a fully client-side audio processing app that runs entirely in the browser — no server, no uploads, no account. Drop any audio file and it gives you a real-time studio: slow the track down, shape the reverb, tune pitch and EQ, and watch a 3D WebGL orb react to every beat.

Built as a demonstration of what the Web Audio API and WebGL can do together at production quality. Everything processes on-device. Nothing touches a server.


✦ Features

Playback Speed 25%–170% with no pitch artifacts — tempo changes, key stays locked
Reverb Engine True convolution reverb with adjustable mix, decay, and room size
3-Band EQ Low / mid / high shelf with ±12 dB range
Pitch Shift ±12 semitones, fully independent of speed
Chorus + Saturation Shimmer, width, and analog warmth
Key Detection Chromagram analysis runs offline on load — all 12 roots, major/minor
BPM Detection Real-time onset detection from the live FFT stream, updates with speed
Loop Region Drag handles on the waveform to set in/out points with crossfade
8D Audio Binaural HRTF spatial processing — sound orbits your head
WAV Export Download the fully processed, effected track
Presets Lo-Fi · Vaporwave · Ambient · Hyperpop — each switches audio and visuals
PWA Installs to home screen, works offline, lock screen media controls

The Orb

At the center of Slo-Fi is a 3D audio-reactive sphere built with Three.js and custom GLSL shaders. Bass pushes the geometry outward. Mid frequencies ripple the surface in layered simplex noise. Treble ignites a particle field. Every visual parameter — reactivity, glow, rotation, wireframe, particle count — is adjustable live.


✦ Tech Stack

Layer Technology
Language TypeScript 5.x
Build Vite 8.x
3D / WebGL Three.js r183 + custom GLSL shaders
Audio Web Audio API — convolution reverb, analyser, BPM/key detection
Visuals Post-processing bloom via EffectComposer, simplex noise displacement
Styling Tailwind CSS v4
Deployment Cloudflare Pages
Self-hosting Docker + nginx

✦ Privacy & Security

Audio never leaves the device.

Slo-Fi processes everything inside the browser using the Web Audio API. There is no backend receiving files, no analytics, no third-party scripts, no telemetry of any kind.

Audio processed entirely on-device
Zero network requests for audio data
No accounts, no tracking, no telemetry
All dependencies bundled — no CDN calls at runtime
Audio cleared from memory on tab close
Service worker caches app shell only — never audio

See SECURITY.md for the full architecture and responsible disclosure policy.


✦ Get Started

Live

slofi.live — open it, drop a track, done. Works on any modern browser, no install required.

Local

git clone https://github.com/gurvinny/Slo-Fi.git
cd Slo-Fi
npm install
npm run dev        # dev server at localhost:5173
npm run build      # production build
npm run preview    # preview the build locally

Docker

docker compose up -d   # builds and serves via nginx

✦ Architecture

Detailed breakdown of the audio engine, shader pipeline, and PWA service worker in ARCHITECTURE.md.


✦ Contributing

See CONTRIBUTING.md for branch conventions, dev setup, and PR checklist.


📄 License

MIT — see LICENSE.


GitHub Stars GitHub Forks GitHub Issues

About

Slo-Fi turns your browser into a late-night studio. Experience your favorite tracks in a new dimension with professional-grade slowing and deep, ethereal reverb. No downloads, no lag just pure atmospheric bliss. Elevate your listening with customizable decay, room size, and pitch-perfect playback.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors