Field report 01 / Active development

SetFlow

Turn service intent into a prepared, safely versioned Ableton set without treating missing information as certainty.

SetFlow Align Reference workspace showing an audio timing result and an Ableton-ready export.
Interface proof / SetFlow

The interface leads with the understandable result while keeping ranking and detection detail available for verification.

Status
Active development
Category
Native macOS
Built with
Swift / SwiftUI / Planning Center / Ableton Live / SQLite / Keychain / Local audio tools

The operating problem

A plan can look complete while the playback session behind it is still fragile.

Tracks may live on disconnected storage. A song may have two plausible local matches. A saved folder may have moved. The intended template or destination may not have been chosen yet. These are meaningfully different conditions, even if each could be flattened into a generic warning.

That language matters because the operator needs to know whether to wait, choose, repair, or proceed.

Automatic Match
A saved link or an unambiguous high-confidence match whose basis remains visible.
Ambiguous Match
Returns the decision to the operator.
Source Unavailable
Preserves the saved relationship while waiting for the expected storage to return.
Link Broken
The source is available, but the recorded folder or files no longer exist where expected.
Intentional Skip
Records a deliberate choice without blocking partial preparation.

The approach

The app brings recurring service preparation into one native macOS toolbox: importing plans, matching songs to local music assets, choosing a template and destination, generating reference material, and preparing the final set. It carries known work while keeping unresolved work visible.

Prepare Set is a non-linear readiness workspace rather than a step-by-step wizard. Track availability, template choice, destination, and preparation blockers remain visible and can be resolved in any order after the active plan is chosen.

This keeps the workflow flexible without hiding its state. The nearest upcoming plan can become active by default, but the user remains free to choose another. Automatic matches are easy to change. Ambiguous matches are not silently resolved. Saved links survive temporary source disconnections.

When preparation is complete, SetFlow creates local, versioned output rather than silently overwriting an existing Ableton set.

Workflow signal3 stages
InputReceive the upcoming service planStart with song order, keys, arrangements, and the intent already carried by the plan.
InspectResolve what is actually knownCheck track availability, saved links, template choice, destination, and preparation blockers without forcing a linear wizard.
OutputPrepare the Ableton setCreate a local, safely versioned result that is ready for the operator and never silently overwrites existing work.

Blocker: An ambiguous match, unavailable source, broken link, or unresolved requirement remains visible until the operator resolves it or deliberately accepts an intentional skip.

Human-readable audio decisions

The same posture carries into SetFlow’s audio tools.

When aligning a reference, Session Audio defines the timing. Reference Audio is padded or trimmed to match it without stretching, warping, or pitch shifting. The interface presents the result as an action the operator can understand and verify, while keeping technical detection detail available when needed.

SetFlow also includes tools for reference-track preparation, transposition, stem separation, categorization, mixing, preview, and export. These capabilities are useful because they live inside the preparation workflow, not because they remove the operator from it.

Implementation posture

SetFlow is a native SwiftUI macOS application with local SQLite state and Keychain-backed Planning Center credentials. Asynchronous preview, export, plan-refresh, transposition, and stem-separation work uses cancellation boundaries or generation guards so stale results do not replace newer state.

The deeper design rule is simpler:

The hard part is not generating the set. It is deciding what the tool is allowed to infer.

SetFlow earns trust by respecting the difference between unavailable, uncertain, and wrong.