A full-stack monorepo for generating complete songs - lyrics, vocals with customizable pitch, and instrumental music using AI agents, RAG, and local LLMs. Transform your ideas into full songs ready for playback and download!
- Lyrics Creation: AI-powered lyrics with multi-agent system
- Voice Synthesis: Text-to-speech with customizable pitch and effects
- Music Composition: Genre-matched instrumental music generation
- Professional Mixing: Automated multi-track mixing and mastering
- Voice Profiles: Multiple voice options with different styles
- Pitch Control: Adjust vocal pitch up/down 12 semitones
- BPM Control: Set tempo from 40-220 BPM
- Audio Effects: Reverb, echo, compression, and more
- Multi-track Production: Separate vocal and instrumental tracks
- Format Support: MP3, WAV, OGG, FLAC, M4A
- Multi-Agent System: Planning, Generation, Refinement, Voice, Music agents
- RAG Integration: Context-aware lyrics from vector database
- Real-time Streaming: Watch lyrics and audio generation live
- Quality Scoring: Automatic quality assessment
- Web App: Full-featured web interface with audio player
- Mobile App: Native iOS and Android with offline playback
- Background Play: Continue listening while app is in background
- Download: Save songs for offline access
lyrica/
βββ lyrica-backend/ # FastAPI backend with LangGraph agents
βββ lyrica-web/ # Next.js web application
βββ lyrica-mobile/ # React Native mobile app
βββ package.json # Root package.json with workspace scripts
βββ turbo.json # TurboRepo configuration
βββ pnpm-workspace.yaml # pnpm workspace configuration
βββ docker-compose.yml # Docker services (PostgreSQL, Redis, ChromaDB)
- Node.js 22+
- pnpm 8+
- Python 3.12+
- Docker & Docker Compose
- Ollama (optional, for local LLM)
# Install pnpm globally if you haven't
npm install -g pnpm
# Install all dependencies (backend + frontend)
pnpm install
# Set up backend (creates venv, installs Python deps)
cd lyrica-backend && bash scripts/setup.sh && cd ..# Start all services (PostgreSQL, Redis, ChromaDB)
pnpm docker:up
# Run backend + web + mobile in parallel
pnpm dev
# Or run individually:
pnpm dev:backend # Backend only (port 8000)
pnpm dev:web # Web only (port 3000)
pnpm dev:mobile # Mobile only (Expo)- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
- Web App: http://localhost:3000
- Mobile App: Metro Bundler on port 8081 (use Android/iOS simulator)
pnpm dev # Run all apps in parallel
pnpm build # Build all apps
pnpm test # Run all tests
pnpm lint # Lint all apps
pnpm format # Format all code
pnpm clean # Clean all build artifacts
# Docker commands
pnpm docker:up # Start services
pnpm docker:down # Stop services
pnpm docker:logs # View logs
# Database commands
pnpm db:migrate # Create migration
pnpm db:upgrade # Apply migrations
pnpm db:seed # Seed databasecd lyrica-backend
make dev # Run backend server
make test # Run tests
make lint # Lint code
make format # Format code
make db-upgrade # Apply migrations
make db-seed # Seed databasecd lyrica-web
pnpm dev # Run dev server
pnpm build # Build for production
pnpm start # Start production server
pnpm lint # Lint codecd lyrica-mobile
pnpm install # Install dependencies
pnpm start # Start Metro bundler
pnpm android # Run on Android
pnpm ios # Run on iOS (macOS only)- Framework: FastAPI with async support
- Database: PostgreSQL (via SQLAlchemy)
- Cache: Redis
- Vector Store: ChromaDB for RAG
- LLM: Ollama (Llama 3 / Mistral)
- Agents: LangGraph multi-agent system
- Embeddings: sentence-transformers
- Voice Synthesis: Bark / Coqui TTS
- Music Generation: MusicGen / AudioCraft
- Audio Processing: librosa, pydub, soundfile
- Framework: Next.js 14+ with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- State: Zustand / TanStack Query
- API Client: Axios / Fetch
- Framework: React Native CLI (0.76+)
- Navigation: React Navigation 6
- Language: TypeScript
- State: Zustand / TanStack Query
- Platforms: iOS, Android
All documentation is organized in the docs/ folder:
- Start Here β - Read this first!
- Quick Start Guide - 5-minute setup
- Setup Complete - What's configured
- System Architecture - Detailed design
- Architecture Visual - Diagrams
- Database Design - Schema & ERD
- Monorepo Guide - TurboRepo & workspaces
- Mobile Setup - iOS & Android
- Deployment Guide - AWS, K8s, Terraform
- Work Breakdown Structure - Feature roadmap
- Editor Setup - Code style & formatting
# PostgreSQL - Port 5432
# Redis - Port 6379
# ChromaDB - Port 8001
# Start all services
docker-compose up -d
# Check status
docker-compose ps
# View logs
docker-compose logs -f
# Stop all services
docker-compose downpnpm docker:uppnpm db:upgrade
pnpm db:seedpnpm dev- Backend code:
lyrica-backend/app/ - Web code:
lyrica-web/src/ - Mobile code:
lyrica-mobile/
pnpm test
pnpm lint
pnpm formatlyrica-backend/
βββ app/
β βββ api/ # API endpoints
β βββ core/ # Core config
β βββ models/ # Database models
β βββ schemas/ # Pydantic schemas
β βββ crud/ # CRUD operations
β βββ services/ # Business logic
β βββ agents/ # LangGraph agents
β βββ db/ # Database utilities
βββ tests/ # Tests
βββ scripts/ # Utility scripts
βββ alembic/ # Database migrations
βββ requirements.txt # Python dependencies
lyrica-web/
βββ src/
β βββ app/ # Next.js App Router
β βββ components/ # React components
β βββ lib/ # Utilities
β βββ styles/ # Global styles
βββ public/ # Static assets
lyrica-mobile/
βββ app/ # Expo Router pages
βββ components/ # React Native components
βββ services/ # API services
βββ assets/ # Images, fonts, etc.
See DEPLOYMENT_GUIDE.md for detailed deployment instructions including:
- Docker deployment
- AWS infrastructure (Terraform)
- Kubernetes (EKS + Helm)
- CI/CD with GitHub Actions
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
[Your License Here]
Bibek Gupta
Built with β€οΈ using FastAPI, Next.js, React Native, and TurboRepo