The Galactic Interface for Intelligent Audio Discovery
Orpheus Engine is a next-generation music analysis platform that reimagines your music library as a living, breathing galaxy. Instead of lists and spreadsheets, we use 3D semantic clustering to visualize relationships between songs, turning data exploration into an interstellar journey.
In traditional systems, a "Genre" is just a text tag. In Orpheus Engine N, specific genres are massive celestial bodies with their own gravity.
- The Solar System: Represents your entire musical universe.
- The Sun (Source): The central upload point. New raw audio data originates here, burning with potential until analyzed.
- Planets (Clusters): Each planet represents a distinct musical cluster (Genre).
- Orbits: Determine the relationship to the "mainstream" or center.
- Gravity: Songs with similar features (BPM, Energy, mood) are pulled towards their respective planetary clusters.
- Asteroids (Transfers): When you upload a song, it doesn't just "appear." It travels as a glowing asteroid from the Sun to its destination planet, visually representing the classification pipeline.
| Planet / Genre | Color Code | Representation | Avg BPM |
|---|---|---|---|
| Classical | 🟡 Gold | The Foundations / Core | ~50 |
| Jazz | 🔵 Blue | Complexity & Soul | ~70 |
| Rock | 🟠 Orange | Energy & Drive | ~100 |
| Electronic | 🟢 Green | Pulse & Rhythm | ~128 |
Orpheus Engine operates on a decoupled Microservice Architecture, separating the immersive Frontend from the heavy-lifting computational Backend.
graph TD
User([👤 User])
subgraph "Frontend (Next.js)"
UI[🖥️ Music Galaxy UI]
ThreeJS[🪐 Three.js Canvas]
Proxy[⚡ API Proxy]
end
subgraph "Backend (FastAPI)"
API[🐍 Main API]
Librosa[🎼 Librosa DSP]
VectorDB[(🧠 Pinecone Vector DB)]
MetaDB[(💾 MongoDB Metadata)]
end
User -->|Uploads MP3| UI
UI -->|Visual Feedback| ThreeJS
UI -->|FormData| Proxy
Proxy -->|Forward Request| API
API -->|Process Audio| Librosa
Librosa -->|Extract BPM/Energy| API
API -->|Generate Embedding| VectorDB
API -->|Store Metadata| MetaDB
API -->|Return Analysis| UI
UI -->|Animate Asteroid| ThreeJS
How does a raw MP3 file become a data point on a 3D planet?
sequenceDiagram
participant U as 👤 User
participant F as ⚛️ Frontend
participant B as 🐍 Backend
participant A as 🎼 Analyzer
U->>F: Uploads "song.mp3"
F->>F: Check File Size (<10MB)
F->>B: POST /upload
Note over B: Streaming Upload
B->>A: Load Audio (48kHz)
A->>A: Detect Onsets & Beats
A->>B: Return BPM (e.g., 128)
B-->>F: JSON { status: "success", bpm: 128 }
Note over F: Visualization Phase
F->>F: Determine Genre (BPM Logic)
F->>F: Spawn Asteroid ☄️
F->>F: Animate Sun -> Planet
F->>F: Update Hub Overlay
F->>U: Show "Match %" vs Top Picks
- Framework: Next.js 14 (App Directory)
- 3D Engine: Three.js & React Three Fiber
- Styling: Tailwind CSS & Glassmorphism
- Motion: Framer Motion for silky smooth UI transitions.
- Runtime: Python 3.10+
- API: FastAPI (High performance async).
- Audio DSP: Librosa (The gold standard for music analysis).
- Database: Pinecone (Vector Search) & MongoDB (Persistence).
Power up the sophisticated analysis engine.
cd orpheus-engine-backend
pip install -r requirements.txt
python main.pyRuns on http://localhost:8000
Launch the galactic interface.
cd my-app
npm install
npm run devRuns on http://localhost:3000
- Dynamic Similarity Matching: Real-time calculation of "Match %" based on BPM analysis.
- Visual Classification: Watch your music physically travel to its correct genre cluster.
- Smart Sorting: Playlists automatically reorder to show the best matches first.
- Holographic HUD: Glassmorphic overlay for detailed song statistics.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by the Orpheus Team.