Skip to content

makesitgood/phoson

Repository files navigation

Phoson

Real-time audio visualizer for the browser. Give it your microphone, play some music, watch it go.

License: MIT

Live demo


Vizzes

Name Tagline
Acid Warp Loving homage to the classic DOS screensaver
Beat Saber Geometry is sexy
Midas Gunna be gunna be golden
Mycelium Leave a trace

Running locally

No build step. No bundler. Just a web server that can serve ES modules.

git clone https://github.com/makesitgood/phoson.git
cd phoson
npx serve .

Then open http://localhost:3000 in a browser that supports the Web Audio API (all modern browsers do).

Why a server? ES module imports are blocked by file:// due to browser CORS rules. Any static file server works — npx serve, python3 -m http.server, VS Code Live Server, etc.


How it works

Phoson uses the Web Audio API to analyze microphone input in real time, extracting band energies, beat detection, and BPM. Each frame, that data is passed to whichever visualization is active. Vizzes are self-contained JS classes — each owns its own Three.js scene, camera, and post-processing stack.

The full audio API reference and viz philosophy are in HOWTO.md.


Adding a viz

See HOWTO.md for the complete BaseViz interface, the audio frame format, and design principles distilled from building the existing vizzes.

To contribute a new viz, see CONTRIBUTING.md.


Tech

  • Vanilla JS — no app framework
  • Three.js for WebGL rendering and post-processing
  • Web Audio API (AnalyserNode) for audio analysis
  • No bundler required

License

MIT © Alex Morse — see LICENSE.

About

Browser visualizer

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages