Skip to content

LaurieWired/InfiniteRadio

Repository files navigation

License GitHub release (latest by date) GitHub stars GitHub forks GitHub contributors Follow @lauriewired

logo

Infinite Radio

Infinite Radio generates endless music that automatically changes based on your current context. It combines the Magenta RealTime music model with contextual genre selection either from InternVL3 or the top processes running on your machine.

Installation

Prerequisites

For running the music model locally, you will need:

Music Model

  1. Run the Docker Container from Dockerhub:

    docker run --gpus all --network host lauriewired/musicbeats:latest
  2. Access the web interface:

    • Open your browser and navigate to http://127.0.0.1:8080 or the IP where the music container is running
    • Click the play button to start streaming

Running a DJ

Option 1: Running the DJ on MacOS

The Mac application can start the Process DJ or connect to the LLM DJ. It lives as a tray application to easily configure and examine the music control. Note: When using the Mac application, you may need to provide additional permissions to allow the DJ to examine your screen to dynamically select the genre.

  1. Download the latest release:

    • Go to the releases page and download the latest version
    • Run the .app file and Infinite Radio will appear in your tray
  2. Configure to point to the IP and port of the music model

  3. Select and run your DJ of choice

    • You can run the process DJ immediately or choose the LLM DJ
    • If selecting the LLM DJ, ensure the model server is running already in LM Studio (See Option 3 below for an example although you may skip the python step when using the Mac app)

Option 2: Running Process DJ with Python

The Process DJ will monitor the processes on your system and automatically change music genres based on what applications are most active.

python process_dj.py 127.0.0.1 8080 # Point this to the IP and port of the music model

Option 3: Running the LLM DJ with Python

The LLM DJ analyzes the data on your screen to automatically configure the genre that best suits your activity.

  1. Run the LLM in LM Studio:
    • Download InternVL3 (or any image to text model)
    • Start the server in LM Studio

lm_studio

  1. Run the Python Connection:
    python llm_dj.py 127.0.0.1 8080 # Point this to the IP and port of the music model

API Reference

Change Genre

POST /genre

curl -X POST http://localhost:8080/genre \
  -H "Content-Type: application/json" \
  -d '{"genre": "jazz"}'

Get Current Genre

GET /current-genre

curl http://localhost:8080/current-genre

Building

Building the Mac application:

pip install py2app jaraco.text setuptools
python3 setup.py py2app

About

Infinite Contextual Radio

Resources

License

Stars

Watchers

Forks

Packages

No packages published