Retro web experiments, local music tools, and small repo utilities.
Live site:
https://mcamner.github.io/coolThing/
docs/- static GitHub Pages site and browser experimentsbackend/- local FastAPI backend for music featurestools/- shell scripts for local development and repo workflow
MTV-style guitar tab generator prototype. The browser UI sends a YouTube URL to the
local backend, which downloads audio with yt-dlp, runs Basic Pitch transcription,
detects chords, can transcribe lyrics locally with faster-whisper, and returns a
generated guitar tab.
Files:
docs/mega-guitar/
backend/app.py
Live frontend:
https://mcamner.github.io/coolThing/mega-guitar/?v=mtv1
Local frontend:
http://localhost:3000/mega-guitar/
Spotify "now playing" display. Shows the current track, album art, timing and audio features, then can search YouTube and send the track to Mega Guitar.
Files:
docs/mega-now/index.html
backend/app.py
Local frontend:
http://localhost:3000/mega-now/
Frontend-only setlist builder. Saves songs, YouTube links, Spotify links, BPM, key,
tuning, capo and notes in browser localStorage, with direct handoff to Mega Guitar.
File:
docs/mega-setlist/index.html
Live:
https://mcamner.github.io/coolThing/mega-setlist/
Local frontend:
http://localhost:3000/mega-setlist/
Chromatic guitar tuner that runs in the browser. Uses the microphone via Web Audio API, detects pitch with the McLeod Pitch Method (NSDF + 3-sample MIDI-space median filter), and displays the note, octave, frequency and cents deviation on an animated needle meter. Covers the full guitar range including low E (E2, 82 Hz).
File:
docs/mega-tuner/index.html
Live:
https://mcamner.github.io/coolThing/mega-tuner/
Local frontend:
http://localhost:3000/mega-tuner/
90s-inspired video/web experiment with loud visuals and old-school streaming-launcher energy.
File:
docs/mega-movie/index.html
Live:
https://mcamner.github.io/coolThing/mega-movie/
Start the backend and local frontend together:
./tools/start.sh
Then open:
http://localhost:3000/
Individual commands:
./tools/run-mega-guitar-backend.sh
./tools/serve-frontend.sh
Backend URL:
http://127.0.0.1:8000
Mega Now requires Spotify OAuth credentials.
-
Create an app at
developer.spotify.com. -
Add this redirect URI:
http://127.0.0.1:8000/spotify/callback -
Export credentials before starting the backend:
export SPOTIFY_CLIENT_ID=your_client_id export SPOTIFY_CLIENT_SECRET=your_client_secret
- macOS or another Unix-like shell environment
- Python 3
- ffmpeg installed locally
On macOS:
brew install ffmpeg
Python dependencies are installed from backend/requirements.txt by the startup scripts.
Auto Lyrics uses local Whisper transcription through faster-whisper; the first run may
download a model and can take time on CPU.
Health check:
GET /
Generate guitar tab:
POST /generate
Detect chords only:
POST /chords
Transcribe lyrics locally:
POST /lyrics
Spotify:
GET /spotify/login
GET /spotify/callback
GET /spotify/now-playing
GET /spotify/youtube-search
coolThing/
├── backend/
│ ├── app.py
│ ├── requirements.txt
│ └── README.md
├── docs/
│ ├── index.html
│ ├── favicon.svg
│ ├── mega-guitar/
│ ├── mega-movie/
│ ├── mega-now/
│ ├── mega-setlist/
│ └── mega-tuner/
├── tools/
│ ├── README.md
│ ├── connect-any-repo.sh
│ ├── run-mega-guitar-backend.sh
│ ├── serve-frontend.sh
│ └── start.sh
├── README.md
├── LICENSE
└── .gitignore
GitHub Pages only hosts the static frontend files. Anything that needs Python, Spotify OAuth, YouTube downloads, ffmpeg, or Basic Pitch must run locally.
MIT