A digital companion for a vintage vinyl setup. Captures audio from a USB interface on a Raspberry Pi, visualizes it on a tablet (VU Meter), and streams it to Google Cast devices in the house.
- Hardware: Raspberry Pi 4 (Server), Nexus 7 Tablet (Client), Sonos USB-C Line-in Adapter (ADC).
- Backend: Python (FastAPI, WebSockets, FFmpeg).
- Frontend: React (Vite, Tailwind CSS).
- Deployment: Nginx + Systemd on Raspberry Pi.
- Real-time VU Meter: Visualizes audio levels on the tablet with low latency.
- Multi-Room Streaming: Broadcasts vinyl audio to Google Cast groups.
- Playback Control: Start/Stop casting and adjust volume from the tablet.
- Local Monitoring: Listen to the stream directly in the browser.
- Node.js & npm
- Python 3.11+
- Raspberry Pi with
nostalgiahostname configured (or updatedeploy.sh).
-
Frontend:
cd frontend npm install npm run dev -
Backend:
cd backend pip install -r requirements.txt uvicorn main:app --reload
Use the included script to deploy to the Raspberry Pi:
./deploy.sh # Deploy both Frontend and Backend
./deploy.sh --frontend-only # Deploy only Frontend
./deploy.sh --backend-only # Deploy only Backend- Nginx: See
backend/nostalgia.nginx. - Systemd: See
backend/nostalgia.service. - Audio Device: Configured in
backend/broadcaster.pyandbackend/vu_meter.py(Default:plug:dsnoop:1).
MIT
