Transform your internet connection into unique procedurally generated music. NETWAVE measures your real network performance and converts the speed test results into a live musical composition played directly in your browser.
Every test creates a one-of-a-kind track. A faster connection produces a different beat than a slower one — your music is a direct sonic fingerprint of your network.
- 🎼 Real-time Music Generation — Hear the beat build as the speed test runs
- 📊 Network-to-Sound Mapping — Ping, download, upload, and jitter control tempo, bass, melody, and rhythm
- 🔊 Web Audio Synthesis — Pure browser-based audio generation, no external files
- 💾 Export to WAV — Download your unique track as a high-quality audio file
- 🎨 Live Visualizer — Real-time frequency and waveform display during generation
- ⚡ Instant Playback — Replay your track or regenerate with a new speed test
For Developers & Engineers
- Debug network performance issues sonically
- Monitor connection quality in real-time
- Identify jitter and latency problems through audio feedback
For ISP Testing
- Audit broadband speeds across locations
- Create memorable reports with audio signatures
- Compare different network conditions
For General Users
- Entertainment — generate a unique track from your internet
- Share your connection speed as audio
- Visualize network performance in a creative way
For Educators
- Teach networking concepts through sound
- Make network latency tangible and audible
- Engage students with interactive demos
- Node.js 18+ and npm
- Python 3.9+ and pip
- Git
cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in the backend/ directory (currently no required env vars, but can be added for api keys/config):
# Backend configuration (optional)
# SPEEDTEST_API_KEY=your_key_here
# DATABASE_URL=your_db_urlStart the server:
uvicorn main:app --reload --port 8000cd frontend
npm installCreate a .env.local file in the frontend/ directory:
# Backend API URL
NEXT_PUBLIC_API_URL=http://localhost:8000
# Optional: Analytics or service configurations
# NEXT_PUBLIC_ANALYTICS_ID=your_idStart the development server:
npm run devNavigate to http://localhost:3000 in your browser.
Click RUN TEST & GENERATE MUSIC — the speed test runs automatically and generates your track in real-time.
Your network metrics are mapped to musical parameters:
| 📡 Metric | 🎵 Controls |
|---|---|
| Ping (ms) | Tempo — low ping = fast BPM, high ping = slow BPM |
| Download (Mbps) | Bass intensity — faster download = heavier bass |
| Upload (Mbps) | Melody brightness — faster upload = higher, brighter melody |
| Jitter (ms) | Timing variance — high jitter = loose, unpredictable rhythm |
Speed Test Progress:
- Ping measured → Drums start at the calculated BPM
- Download measured → Bass layer is added
- Upload measured → Melody layer is added
- Test complete → Full polished 8-bar loop plays from the beginning
Once the loop finishes, two options appear:
▶️ PLAY AGAIN — Replay the exact same beat without re-running the speed test- ⬇️ DOWNLOAD WAV — Export as a 44.1 kHz / 16-bit stereo WAV file (e.g.,
netwave-112bpm-125dl-45ul.wav)
- Frontend — Next.js 16 (App Router), TypeScript, Tailwind CSS, Web Audio API
- Backend — Python, FastAPI, speedtest-cli
- Visualizer — Canvas 2D with live frequency and waveform data
netwave/
├── frontend/ Next.js app (port 3000)
│ ├── src/
│ │ ├── app/ App Router & API
│ │ ├── components/ React components
│ │ └── lib/ Utilities & speedtest logic
│ ├── package.json
│ └── .env.local
└── backend/ FastAPI server (port 8000)
├── main.py
├── requirements.txt
└── .env
NETWAVE is open source and released under the MIT License.
Copyright © 2026 Solvor Private Limited
This project is open source and free to use, modify, and distribute under the MIT License. See LICENSE for details.
Contributions are welcome! Feel free to open issues, submit pull requests, or suggest features.
For questions, issues, or feedback, please reach out or open an issue in the repository.