Spaces:
Running
Running
| title: SYNTHIA | |
| emoji: πΉ | |
| colorFrom: purple | |
| colorTo: blue | |
| sdk: gradio | |
| sdk_version: 5.49.1 | |
| app_file: app.py | |
| pinned: false | |
| short_description: Browser-based MIDI keyboard with recording and synthesis | |
| # SYNTHIA | |
| A minimal, responsive browser-based MIDI keyboard. Play live, record performances, and export as MIDI files. πΉ | |
| This build includes a **Godzilla** engine that can continue a short phrase using the | |
| Godzilla Piano Transformer. | |
| ## ποΈ Project Structure | |
| ``` | |
| . | |
| βββ app.py # Gradio server & API endpoints | |
| βββ config.py # Centralized configuration | |
| βββ engines.py # MIDI processing engines | |
| βββ midi_model.py # Godzilla model integration | |
| βββ midi.py # MIDI file utilities | |
| βββ keyboard.html # HTML structure | |
| βββ static/ | |
| β βββ keyboard.js # Client-side audio (Tone.js) | |
| β βββ styles.css # Styling & animations | |
| βββ requirements.txt # Python dependencies | |
| βββ README.md # This file | |
| ``` | |
| ## π Quick Start | |
| ```bash | |
| # Install dependencies | |
| uv pip install -r requirements.txt | |
| # Run the app | |
| uv run python app.py | |
| ``` | |
| Open **http://127.0.0.1:7861** | |
| ## πΉ Godzilla Engine | |
| Select **Godzilla** in the engine dropdown to generate a short continuation from your | |
| recorded phrase. The model is downloaded on first use and cached locally. | |
| Note: the engine filters generated notes to your on-screen keyboard range. | |
| ## π Deploy to Hugging Face Spaces | |
| ```bash | |
| git remote add hf git@hf.co:spaces/YOUR_USERNAME/synthia | |
| git push hf main | |
| ``` | |
| Current configuration runs Godzilla generation on CPU for reliability. | |
| ## π§ Technology | |
| - **Frontend**: Tone.js v6+ (Web Audio API) | |
| - **Backend**: Gradio 5.x + Python 3.10+ | |
| - **MIDI**: mido library | |
| - **Model**: Godzilla Piano Transformer (via Hugging Face) | |
| ## π License | |
| Open source - free to use and modify. | |