Skip to content

solvorlabs/netwave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎵 NETWAVE — Internet Speed Music Generator

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.


✨ Features

  • 🎼 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

🎯 Use Cases

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

Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Python 3.9+ and pip
  • Git

1️⃣ Setup Backend

cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

Create 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_url

Start the server:

uvicorn main:app --reload --port 8000

2️⃣ Setup Frontend

cd frontend
npm install

Create 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_id

Start the development server:

npm run dev

3️⃣ Open the App

Navigate to http://localhost:3000 in your browser.

Click RUN TEST & GENERATE MUSIC — the speed test runs automatically and generates your track in real-time.


How It Works

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:

  1. Ping measured → Drums start at the calculated BPM
  2. Download measured → Bass layer is added
  3. Upload measured → Melody layer is added
  4. Test complete → Full polished 8-bar loop plays from the beginning

After Your Track Plays

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)

🏗️ Tech Stack

  • 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

📂 Project Structure

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

📜 License

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.


🤝 Contributing

Contributions are welcome! Feel free to open issues, submit pull requests, or suggest features.


📧 Support

For questions, issues, or feedback, please reach out or open an issue in the repository.

Releases

No releases published

Packages

 
 
 

Contributors