Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

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

Packages

Contributors

Languages