Inspiration

[1–2 sentences in your own words: why you wanted this, such as time spent preparing sets or playlists that kill the mood.]

What it does

Flowstate is an AI set builder that runs on your NAS. Describe what you want, such as "90-minute house set that builds slowly and peaks near the end", and it turns your own music library into an ordered set.

  • DJ mode: set a BPM range, key strictness and energy curve, then export to Rekordbox or M3U.
  • Playlist mode: pick a mood, activity or length and get a playlist that flows, with no DJ knowledge needed.
  • Explainable transitions: every track change gets a score, so you can see why each track was placed where it is.

Your music and listening habits stay on your own hardware.

How we built it

  1. Library scan: a background job on the NAS indexes your audio files and extracts BPM, key, energy and genre.
  2. Request parsing: a local language model turns your request into a target length, BPM range, genres and energy curve.
  3. Transition scoring: each possible track pair is scored on tempo, key compatibility, energy and genre.
  4. Sequencing: a path search finds the order that best fits the energy curve with the smoothest transitions.
  5. Delivery: a web app lets you review and reorder the set, then export it.

Everything is packaged in Docker to run on a UGREEN NAS.

Challenges we ran into

  • The platform changed our plan. We first planned an app that analyzed audio for BPM and key. UGREEN Skills can only contain Markdown instructions, with no scripts or programs, so we redesigned Flowstate around the NAS's built-in capabilities.
  • No BPM or key data on the NAS. The NAS capability catalog provides genre and file details, but no tempo, key or energy. Rather than let the AI guess, Flowstate uses BPM and key only from data DJs already have: a Rekordbox export, a CSV or clearly formatted file names. Tracks without that data are reported, not guessed.
  • Standing out. UGREEN already has a music recommendation Skill based on mood, so we focused on what DJs need before a gig: a full running order, a reason for every transition, and a report of what the crate is missing.
  • No hardware in Round 1. Without NAS access, we couldn't see exactly what each NAS expert returns, so the Skill handles empty, partial and failed results explicitly, and our validation plan lists what still needs testing.

Accomplishments that we're proud of

  • A complete six-step workflow across three NAS capabilities (ug-filesystem, ug-filemgr and ug-music), passing UGREEN's official checker with zero errors.
  • Scoring rules for transitions that are clear enough to explain every decision, such as: "124 to 126 BPM (1.6%), 9A to 9B (compatible), energy 5 to 7. Score 84."
  • A gap report that tells DJs what kind of track would fix a weak transition, instead of just ordering what they have.
  • Safety built in: nothing is saved or tagged without the DJ's approval, existing files are never overwritten, and the Skill never presents invented data as fact.

What we learned

  • Check what the platform supports before designing features. Reading the capability catalog early saved us from building something that couldn't run.
  • Building an AI Skill is mostly about clear delegation: each step must give a NAS expert a complete instruction and pass only verified results to the next step.
  • Being honest about data makes a better tool. Labelling estimates and refusing to guess BPM or key makes the result something a DJ can trust in front of a crowd.

What's next for Flowstate

  • Serato export
  • Learning from the edits users make to generated sets
  • Automatic suggestions for mix-in and mix-out points

Built With

Share this project:

Updates

Submission history