Open this lesson in your favourite AI. It'll walk you through the why, explain the demo, and quiz you on the try-it list.
Two workflows dominate serious AI music production. Generate-and-curate: prompt Suno/Udio 20 times for the same brief, pick the best output, minor edits. Fast, fun, but capped at the tool's ceiling. Stem-by-stem: generate individual instrument stems (bass in Stable Audio, drums in MusicGen, vocals in ElevenLabs, pads elsewhere), layer them in a DAW, mix like a real producer. Slower, but the ceiling is your ceiling, not the tool's. Serious AI producers use both — generate-and-curate to explore ideas, stem-by-stem for the tracks they actually ship. This task makes the choice explicit so the rest of the course teaches you both paths deliberately.
A workflow comparison table + a decision tree for which workflow fits which track goal.
Use these three in order. Each builds on the one before.
In one paragraph, explain the difference between generate-and-curate and stem-by-stem workflows.
Walk me through why stem-by-stem has a higher quality ceiling — separation, control, mix headroom.
I only have 3 hours per track. Which stems (of 6-8 typical stems) do I generate vs. keep from a Suno full-song source? Design the hybrid workflow.
WORKFLOWS = {
"generate_and_curate": {
"time_per_track": "1-3 hours",
"quality_ceiling": "tool's ceiling — Suno-good at best",
"control": "prompt + regen only",
"cost": "$5-15 depending on model calls",
"best_for": "ideas, sketches, demos, playful releases",
"flow": "prompt → generate 10-20 variants → pick best → minor lyric/timing edits",
},
"stem_by_stem": {
"time_per_track": "8-30 hours",
"quality_ceiling": "your ear's ceiling — indistinguishable from human-made if you're skilled",
"control": "arrangement, mix, master all in your DAW",
"cost": "$10-50 in generations + $0-$100 for DAW plugins",
"best_for": "serious releases, commercial work, capstone-quality output",
"flow": "sketch in DAW → generate stems in different tools → arrange in DAW → mix/master → export",
},
}
def pick_workflow(goal: str) -> str:
if goal in ("demo", "sketch", "playtest", "meme"): return "generate_and_curate"
if goal in ("EP", "release", "commission", "capstone", "portfolio"): return "stem_by_stem"
return "start with generate_and_curate, migrate to stem_by_stem if the idea sticks"
print(pick_workflow("EP"))
print(pick_workflow("sketch"))
python3 main.py