A beautiful real-time music visualizer that creates mesmerizing Lissajous curves from your audio files. Built with modern web technologies and packaged as a native desktop application.
output.mov
Note that the demo audio is scuffed because I'm recording the playback. Also, if the video doesn't work, try YouTube
Music in the demo is Razihel - Love U provided by NoCopyrightSounds
Lissajous curves are mathematical figures created by plotting two sinusoidal oscillations against each other. In LJV, the left and right audio channels are mapped to the X and Y axes respectively, creating stunning visual patterns that dance to your music.
- Real-time Visualization: Hardware-accelerated WebGL2 rendering for smooth 60fps performance
- Beautiful Trail Effects: Additive blending creates natural glowing trails
- Audio File Support: Load and visualize any audio file supported by your browser
- Customizable Parameters:
- Point size and count
- Trail length
- Color customization
- Rotation and zoom controls
- Render modes (points/lines)
- Native Desktop Experience: Built with Tauri for a lightweight, secure application
- Bun (JavaScript runtime)
- Rust (latest stable)
- System dependencies for Tauri (see Tauri Prerequisites)
# Clone the repository
git clone https://github.com/ThatXliner/ljv/tree/main?tab=readme-ov-file
cd ljv
# Install dependencies
bun installThis project can run both as a Tauri desktop app and as a static web app. The frontend detects whether it's running inside Tauri at runtime and uses platform-appropriate APIs (Tauri file dialog + fs) or standard Web APIs (file input, fetch).
To build a web-friendly static site and deploy to GitHub Pages:
-
Set the GH_PAGES_BASE environment variable if your site will be served from a subpath (for example, "/my-repo/"). If your repository is named
ljvand you host athttps://<user>.github.io/ljv, set GH_PAGES_BASE to/ljv/. -
Build the site:
GH_PAGES_BASE=/ljv/ bun run build:web
-
Commit the generated
distorbuildoutput (SvelteKit will output tobuild/by default) and push to thegh-pagesbranch, or use GitHub Actions to deploy thebuild/folder to GitHub Pages.
Preview the static build locally:
bun run preview:buildContributions are welcome! Please feel free to submit a Pull Request. See contributing guidelines for more details.
AGPL v3.0+
- Inspired by the classic Lissajous curve oscilloscope visualizations
- Built with the amazing Tauri and Svelte ecosystems
Made with ❤️ using Tauri + SvelteKit