// the find
LaurieWired/InfiniteRadio
Infinite Contextual Radio
Infinite Radio generates a continuous music stream via Google's Magenta RealTime model, running in a GPU Docker container, and switches genre automatically based on either your active processes or a vision-language model reading your screen. It's aimed at people who want ambient background music that reacts to context, and it doubles as a demo of gluing a music-generation model to a lightweight control plane.
The architecture is a clean separation of concerns: a Docker container runs the actual model and exposes a simple HTTP API (/genre, /current-genre), while the DJ logic (process-based or LLM-based) is a separate client that just POSTs genre changes. That means you can swap in your own DJ logic without touching the model server. Using process names as a genre signal is a genuinely cheap and clever heuristic — no model inference needed for the common case. The LLM DJ path is a reasonable use of a small vision model (InternVL3-2B) for a task that doesn't need a huge model, and it's designed to run fully locally through LM Studio.
Real use requires an NVIDIA GPU with CUDA and the NVIDIA Container Toolkit — there's no CPU fallback or cloud-hosted option mentioned, so most laptop users are locked out. The Mac app is only distributed as a prebuilt .zip release with no source-level instructions beyond py2app packaging, and there's no Windows or Linux tray client, just the raw Python scripts. Screen-reading for the LLM DJ is a real privacy consideration that isn't discussed anywhere in the README beyond a one-line permissions note. There's no license/attribution discussion for the Magenta RealTime model weights, no tests, and the API has zero auth, so exposing it beyond localhost (the docker run uses --network host) is asking for random people to change your music.