graph TD
start[User Input: Track Description] --> SA1[ScrapeNewArrivals]
SA1 --> |tracklib-new-arrivals| SA2[FilterTracks]
SA2 --> |filtered-tracks| SA3[DownloadAudio]
SA3 --> |downloaded-mp3-files| SA4[AnalyzeAndExtract]
SA4 --> |wav-snippets| SA5[PackageSamples]
SA5 --> end[3_samples.zip]
subgraph ScrapeNewArrivals
SA1.1[Visit Tracklib New Arrivals] --> SA1.2[Extract 10 Track Data]
SA1.2 --> SA1.3[Format JSON Output]
end
subgraph FilterTracks
SA2.1[Process User Description] --> SA2.2[Compare with Track Data]
SA2.2 --> SA2.3[Select Top 3 Matches]
end
subgraph DownloadAudio
SA3.1[Search YouTube] --> SA3.2[Download MP3s]
SA3.2 --> SA3.3[Store Files]
end
subgraph AnalyzeAndExtract
SA4.1[Detect Tempo/Beats] --> SA4.2[Extract 16 Beats]
SA4.2 --> SA4.3[Create WAV Files]
end
subgraph PackageSamples
SA5.1[Collect WAV Files] --> SA5.2[Create ZIP Archive]
end