Inspiration
Music recommendation playlists usually ignore non-music cultural context and harmonic key flow. When a listener or DJ wants a setlist that feels like a Wong Kar-wai film, a Haruki Murakami novel, and a Kyoto kissaten listening bar, tracks need both cross-domain cultural resonance and smooth harmonic transitions. SetlistForge combines Qloo-style cross-domain taste conditioning with a beam-search energy and Camelot wheel harmonic sequencer.
What it does
- Cross-Domain Cultural Seed Conditioning: Select 1 to 4 seeds across 4 domains (
Films & Directors,Books & Essays,Sonic Venues & Aesthetics, andMusic Tracks) to compute an 8-dimensional taste centroid (tempo,valence,acousticness,cinematicTension,nostalgia,lyricalDensity,subculturalEdge,warmth) and inspect the explainability bridge showing why each track resonates with your non-music seeds. - Beam-Search Energy & Harmonic Sequencer: Sequences 6 to 12 tracks along a selectable 6-stage energy spline (
Slow Burn Crescendo,Late-Night Noir Wave,Peak-Hour Festival Arc,Warm Acoustic Dawn, or custom faders) while jointly optimizing seed taste affinity, target energy MSE, and Camelot wheel harmonic transitions (0step,±1fifth, or relative major/minorA<->B). - Web Audio API Harmonic Transition Synthesizer: Audition any adjacent track transition directly in the browser using dual-chord oscillator synthesis and lowpass filter envelopes.
- Live Qloo Insights API Connector & Export Console: Connect a live Qloo API key (
https://hackathon.api.qloo.com/v2/insights) and export playlists as.m3u8,.json, or Markdown liner notes.
How we built it
Built in zero-dependency vanilla JavaScript (engine.js, app.js) with an interactive SVG energy/harmonic transition curve, Web Audio API chord synthesizer, and 30 unit and DOM smoke tests via node:test.
Links
- Live Web App: https://aariv.me/setlist-forge/
- GitHub Repository: https://github.com/draarivpatel-ui/setlist-forge
Built With
- ai
- javascript
- music
- qloo
- recommendations
- web-audio
Log in or sign up for Devpost to join the conversation.