Skip to content
Finalist

CORO

CORO is a real-time collaborative music engine that turns any audience into a live orchestra.

Core trick

Gemini aggregates audience votes into evolving prompts that stream to Lyria RealTime, while WebSockets fan out inputs under a second.

Tags

Description

CORO is a real-time collaborative music engine that turns any audience into a live orchestra. Audience members join a room via QR code, pick a musical role (Drummer, Vibe Setter, Genre DJ, or Instrumentalist), and their collective inputs are synthesized by Google Gemini 2.5 into evolving musical prompts, which Google Lyria then renders as a continuous, never-repeating audio stream. Features include a coordinated "Drop Button" (majority vote triggers a bass drop), a microphone-powered Applause Meter that dynamically shapes the music's energy, and a real-time Musical Timeline showing the crowd's influence on the evolving composition. Built with FastAPI, React, and WebSockets for sub-second latency across up to 10 simultaneous participants.
rahilsinghi/Coro★ 11 forksJavaScriptCreated Feb 28, 2026 · last push Feb 28, 2026

README excerpt

# 🎵 CrowdSynth

> The crowd IS the music. Everyone plays. No skills required.

Built in 8 hours at a hackathon using **Google Lyria RealTime** + **Gemini 2.5 Flash**.

---

## Quick Start

### Prerequisites
- Python 3.11+
- Node.js 18+
- A Google AI Studio API key → https://aistudio.google.com/apikey

---

### Backend (R, C, B)

```bash
cd backend
cp .env.example .env
# → Edit .env and add your GEMINI_API_KEY

python -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate
pip install -r requirements.txt

uvicorn main:app --reload --port 8000
```

Test it: http://localhost:8000/health → `{"status":"ok"}`

---

### Frontend (S, and everyone for testing)

```bash
cd frontend
cp .env.example .env
# → Edit .env: VITE_WS_URL=ws://localhost:8000/ws

npm install
npm run dev
```

Open: http://localhost:3000

---

## Team Responsibilities

| Person | Files to own |
|--------|-------------|
| **R — Rahil** | `backend/services/lyria_service.py` |
| **C — Chinmay** | `backend/services/gemini_service.py`, `backend/services/room_service.py` |
| **B — Bharath** | `backend/main.py`, `backend/routers/ws.py`, `backend/models/schemas.py`, deployment |
| **S — Sariya** | Everything in `frontend/src/` |

---

## Architecture

```
React Frontend (Vercel)
    ↕ WebSocket (JSON + binary audio)
FastAPI Backend (Railway)
    ├── Lyria RealTime WebSocket → streams 48kHz stereo audio
    └── Gemini 2.5 Flash → arbitrates crowd inputs every 4s
```

---

## Deploy

### Backend → Railway

Team