Project Info
This project did not submit a demo video on Devpost.
Inspiration
Reading is dying in 2025. With attention spans shortened by TikTok and Netflix, books feel static and boring compared to multimedia entertainment. As avid readers ourselves, we wished for a method to make book more immersive. We asked: what if every story had its own dynamic soundtrack that adapted to the narrative?
What it does
Ballad AI analyzes any book using natural language processing to understand emotional beats, pacing, and atmosphere. It then generates personalized musical accompaniments that sync with the reading experience—building tension during climactic scenes, adding mystery to detective stories, or creating wonder during fantasy adventures. Readers get an immersive, multimedia experience that makes books better.
How we built it
We combined several AI technologies: Text Analysis: Language models to extract emotional sentiment, mood, and narrative pacing from literary text. Music Generation: Generates dynamic soundscapes based on textual analysis Real-time Sync: Built a reading app that reads the book aloud and adjusts music in real-time Web Interface: Created a responsive web application using React for seamless user experience
Challenges we ran into
Fine-grained Music Control: We originally envisioned layering many music tracks so that we can dynamically shift the mood of the music in real time. However, current available APIs only offer text-conditioned generation with a maximum of 30s, so we had to compensate with a fading and looping effect. Processing Time: Current music generation is slow, so it's difficult to generate music in real time.
Accomplishments we're proud of
Successfully generated coherent, emotionally-appropriate soundtracks for diverse genres Created smooth transitions between musical themes that enhance rather than distract from reading Built a working prototype that demonstrates the concept's viability
What we learned
Our frontend was partially developed by AI, but we found AI generated code to be difficult to maintain. Most of our members had to pick at least 1 unknown framework such as FastAPI, Next JS, etc.
What's next
Implementing user voice recognition so we can allow for the user to read the book aloud Eye tracking, generating visual elements to accompany the music and narrative Better musical control with Lyria Realtime API
This repository has no readme, or GitHub could not be reached.
Analysis
View
Metric
- 9
- 9
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- AnthropicClaimed
7 of 8 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
359 KB
Source files
73
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
RyanLCh/ballad-ai
89 files · 626 KB · @ 6b7436c
Structure
Interface
55 files · 62%Screens, components and styles rendered to the user.
API & routing
12 files · 13%Request entry points: routes, handlers and controllers.
Application logic
7 files · 8%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript48%
- YAML39%
- Python12%
- CSS1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 55- @hookform/resolvers
- @radix-ui/react-accordion
- @radix-ui/react-alert-dialog
- @radix-ui/react-aspect-ratio
- @radix-ui/react-avatar
- @radix-ui/react-checkbox
- @radix-ui/react-collapsible
- @radix-ui/react-context-menu
- @radix-ui/react-dialog
- @radix-ui/react-dropdown-menu
- @radix-ui/react-hover-card
- @radix-ui/react-label
- @radix-ui/react-menubar
- @radix-ui/react-navigation-menu
- @radix-ui/react-popover
- @radix-ui/react-progress
- @radix-ui/react-radio-group
- @radix-ui/react-scroll-area
- +37 more
backend/requirements.txt
pypi · 21- annotated-types
- anyio
- click
- fastapi
- google-auth
- h11
- idna
- litellm
- pydantic
- pydantic-core
- pydantic-settings
- pydub
- python-dotenv
- python-multipart
- requests
- sniffio
- starlette
- +3 more
backend/pyproject.toml
pypi · 5- fastapi
- pydantic-settings
- python-dotenv
- python-multipart
- uvicorn
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.