Files
kithara-studio/README.md
T
rin.kagamine 816f8fbd2f refactor: rename project Lyria Studio → Kithara Studio
- App name, UI text, page titles → Kithara Studio
- Python module: lyria_client.py → kithara_client.py
- Tailwind color classes: lyria-* → kithara-*
- CSS custom properties: --lyria-* → --kithara-*
- Database: lyria.db → kithara.db
- Package name: kithara-studio-frontend
- localStorage key: kithara-saved-searches
- Add project logo (lyre icon, black on transparent, invert via CSS)

Preserved as Google's property:
- LYRIA_API_KEY, LYRIA_BASE_URL, LYRIA_DEFAULT_MODEL env vars
- LYRIA_MODELS dict and model IDs (lyria-3-clip-preview, lyria-3-pro-preview)
- Google Lyria API references in error messages and docstrings
2026-05-31 09:45:22 -04:00

50 lines
1.2 KiB
Markdown

# Kithara Studio
A webapp for generating, playing, and storing music clips using Google's Lyria music generation models.
Built by Kagamine Rin & Ryan.
## Quick Start
```bash
# Backend
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cd src
uvicorn main:app --reload
# Frontend (new terminal)
cd frontend
npm install
npm run dev
```
## Architecture
- **Backend**: FastAPI (Python) — async API client for Google's Lyria models, SQLite metadata, file storage
- **Frontend**: React + Vite + TypeScript + Tailwind — dark theme, audio player
- **Storage**: SQLite for clip metadata, local filesystem for MP3 files
## API
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/health` | GET | Health check |
| `/api/generate` | POST | Start clip generation |
| `/api/clips` | GET | List all clips |
| `/api/clips/{id}` | GET | Get clip metadata |
| `/api/clips/{id}/audio` | GET | Stream MP3 |
| `/api/clips/{id}` | DELETE | Delete clip |
## Models
- **v0.1**: Google Lyria 3 Clip Preview (30s, REST)
- **v0.2**: Google Lyria 3 Pro (structure-aware, ~3min)
- **v0.3**: Google Lyria RealTime (WebSocket streaming)
## License
MIT — Hardcore will never die.