A Chrome extension that captures tab audio and renders real-time visualizations.
Supports various modes such as
-
Oscilliscope(XY)
- Crudely designed to emulate a Soviet-era oscilliscope which may be using phosphor
- Maps Left/Right channels to X/Y axis on the screen/veiwport
- Uses a specially designed UI to allow a more natural use - emulating the oscilliscope better.
- Sometimes used to visualize movement and 'shapes' from audio
-
Spectrogram
- Side-scrolling veiw that shows amplitude with colour and frequency on Y axis
- Ideal for visualizing noise-frequency binning
- Sometimes used to see images encoded in audio
-
Spectrum
- The most common visualization - Bar graph
- Custom Colour-mapping for amplitude to add aethestic
- 'Falling' bars to improve smoothness
-
PCM
- PCM (normalized to +1/-1 from +126/-127) wave form visualization
- Great for seeing 'chopped' audio transients (common for crudely bass-boosted audio files)
- I personally like to imagine it like a guitar string
-
Halo
- Crudely implemented and Under Construction view to emulate a solar storm or a 'earth' traveling through space
- Very Early Implementation; Not representative of final mode.
-
Light Room (GL)
- Experimental WebGL/GLSL ray-marched light installation mapped to live frequency bins
- Each light blooms and fades purely from amplitude, simulating a volumetric club/room scene.
- UNTESTED DUE TO HARDWARE LIMITATIONS
Expect more modes to be added as time goes on; try not to be upset if your favourite mode is removed as we intend to make the modes user-scriptable/moddable via Extension-Storage (Under Review for feasibility - no promises)
Due to how loading unpacked extensions work; you will need to re-load the extension manually each time you start your system; I reccomend using the Chrome Store Release Here
- Download this repository as a ZIP and extract it anywhere.
- Open your Chromium-based browser.
- Open the extensions page manually by copying and pasting one of these into your address bar:
chrome://extensions/— Google Chrome | Chromiumbrave://extensions/— Braveedge://extensions/— Microsoft Edgeopera://extensions/— Operavivaldi://extensions/— Vivaldiepic://extensions/— Epic Privacy Browserbrowser://extensions/— Yandex Browser
- Toggle Developer Mode in the upper-right corner.
- Click Load Unpacked and select the
sourcefolder inside the unzipped directory. - The extension will appear in your extensions list and be ready to use.
Core visualization logic is implemented in
visualizer_system/draw.
- The visualizer runs entirely client-side using the Web Audio API and Canvas 2D.
- Each mode (spectrum, waveform, spectrogram) is drawn on a per-frame loop using requestAnimationFrame.
- Communication with the active tab uses
chrome.tabCapture.
Pure logic utilities now have automated coverage so regressions are caught before shipping builds. Run:
npm testContributions are welcome. Please fork this repository, make your changes in a feature branch, and submit a pull request.
Areas for improvement:
- Additional visualization modes
- UI/UX enhancements
- Performance optimizations
- Accessibility and configuration options