How Files Are Organized
When you drop files into Producer Dashboard’s inbox folders, the app automatically figures out which song each file belongs to and organizes everything into a clean folder structure. This page explains why the inbox folders are designed the way they are, what happens step-by-step during import, and what you can configure in Settings.
Why There Are Separate Inbox Folders
Section titled “Why There Are Separate Inbox Folders”Producer Dashboard uses three distinct inbox folders:
Bounces/— for exported audio mixesStems/— for individual instrument or vocal tracksProjects/— for DAW session files
The reason for separate folders, not one: bounces and stems use exactly the same file extensions (.wav, .mp3, .aiff, etc.). There is no way to tell them apart by looking at the file itself — a stem and a bounce are both just audio files. The folder you put them in is the only signal the app has to classify them correctly.
If both types went into a single folder, every stem would end up categorized as a bounce (or vice versa), which would break how tracks are tagged, how the waveform panel separates them, and how they’re displayed in the activity panel.
Projects have distinct extensions (.als, .logicx, .flp, etc.) so they could technically share a folder — but keeping them separate makes your inbox easier to manage and keeps the pipeline logic clean.
What Happens When You Add Files
Section titled “What Happens When You Add Files”As soon as files land in the inbox folders and you trigger an import (from the Files page), the app runs them through a four-stage pipeline automatically.
Stage 1 — Scan
Section titled “Stage 1 — Scan”The app scans all three inbox folders and classifies every file by extension and location:
| Inbox Folder | What goes here |
|---|---|
Bounces/ | WAV, MP3, AIFF, FLAC, M4A |
Stems/ | WAV, MP3, AIFF, FLAC, M4A |
Projects/ | .als, .logicx, .flp, .ptx, .cpr, .rpp, .reason, .song |
Hidden files (names starting with .) are skipped. Files already linked to an existing track group are also skipped so they aren’t processed again.
Ableton Live projects: when the scanner encounters a .als file, it treats the entire parent folder as the unit to move — not just the file — because Ableton projects depend on a Samples/ subfolder and other assets alongside the .als.
Stage 2 — Group
Section titled “Stage 2 — Group”This is where the app decides which files belong to the same song. It runs a two-phase matching algorithm (detailed below).
Stage 3 — Organize
Section titled “Stage 3 — Organize”Matched files are moved from the inbox into a structured tracks/ hierarchy:
tracks/├── Ancient Dusk/│ ├── bounces/│ │ └── Ancient Dusk - Clean.wav│ ├── stems/│ │ ├── Ancient Dusk Drums.wav│ │ └── Ancient Dusk Bass.wav│ └── projects/│ └── Ancient Dusk Project.als└── Midnight City/ ├── bounces/ └── stems/For project files that already exist in the organized hierarchy, the inbox copy is replaced with a symbolic link rather than duplicated. This keeps your projects folder clean and saves disk space.
Inbox files that were already in the tracks/ folder are cleaned up automatically — you won’t end up with duplicates.
Stems that don’t match any song stay in the Stems/ inbox rather than being moved. Only bounces and projects create new track groups; unmatched stems wait until a matching group exists.
Stage 4 — Sync
Section titled “Stage 4 — Sync”Organized track groups and their files are synced to the cloud database, making them available across devices and visible in your dashboard grid.
The Grouping Algorithm
Section titled “The Grouping Algorithm”Getting files into the right song group is the hardest part of import. The app uses a two-phase approach.
Filename normalization
Section titled “Filename normalization”Before anything is compared, every filename is stripped down to just the core song name. The normalizer removes:
- File extension
- Underscores (replaced with spaces)
- Version numbers:
v1,V3,version 2 - Timestamps:
2.06.22 am,[2025-10-09], 6-digit dates - Content in parentheses or square brackets:
(final),[127 D#m] - Mix identifiers:
clean,full mix,radio edit,demo,wip,master,mastered,rough,final(planned — not yet implemented, see note below) - Technical specs:
320kbps,44.1hz,128bpm - Trailing punctuation and special characters
Examples:
| Filename | Normalized to |
|---|---|
ATL - Ancient Dusk [127 D#m] v11 - CLEAN.wav | atl ancient dusk |
Ancient Dusk - Full Mix.wav | ancient dusk |
Ancient Dusk Radio Edit.mp3 | ancient dusk |
My Song Beat_Idea_v3_WIP.wav | my song beat idea |
Clean Slate.wav | clean slate (“clean” only stripped as a trailing suffix, not mid-name) |
When implemented, the normalizer will be careful not to strip words that are part of the actual song title — Clean Slate would stay clean slate because clean isn’t in trailing position.
Phase 1 — Match against existing library
Section titled “Phase 1 — Match against existing library”Every file is checked against your existing track groups in the database. The app looks for your existing song names as a substring within each normalized filename, checking longest names first so the most specific match wins.
Existing groups: "Atl Alex Ancient Dusk", "Atl Alex"
Incoming files: "atl alex ancient dusk clean" → "atl alex ancient dusk" found → matched ✓ "atl alex ancient dusk full mix" → "atl alex ancient dusk" found → matched ✓ "midnight bloom v3" → no match → goes to Phase 2 "midnight bloom final mix" → no match → goes to Phase 2Matched files are assigned to the existing group immediately. They never create duplicates.
Phase 2 — Cluster new files together
Section titled “Phase 2 — Cluster new files together”Files that didn’t match anything in your library are clustered against each other using Jaro-Winkler string similarity. Any two files whose normalized names score 0.85 or higher get grouped together.
The app is also noise-aware: if a large portion of the unmatched filenames share a common leading word (an artist prefix like “Atl Alex” or “Es” that appears in 40%+ of files), that token is stripped for comparison purposes only, so it doesn’t inflate similarity scores between unrelated songs.
Unmatched files: "midnight bloom v3" "midnight bloom final mix" "midnight bloom bass stem" "random idea"
Similarity check: "midnight bloom" ↔ "midnight bloom" → score ≥ 0.85 → same cluster "midnight bloom" ↔ "random idea" → score < 0.85 → different cluster
Result: Cluster 1 → group name: "Midnight Bloom" (shortest name in cluster) Cluster 2 → group name: "Random Idea"The group name is taken from the shortest normalized name in each cluster, then title-cased. This tends to produce the cleanest result since shorter names have had more suffixes stripped.
Settings: Storage Folder
Section titled “Settings: Storage Folder”You can view and manage your storage folder from Settings → Storage.
Dropbox mode
Section titled “Dropbox mode”If your account is connected to Dropbox, the storage folder path is managed by Dropbox and is read-only. The inbox folders (Bounces/, Stems/, Projects/) live inside your PRODUCER-DASHBOARD folder on Dropbox.
Local mode
Section titled “Local mode”If you’re not using Dropbox, the default storage folder is ~/Music/ProducerDashboard. You can change this to any folder on your computer:
- Go to Settings → Storage
- Click Change next to the current path
- Choose a folder using the system directory picker
The app validates that the chosen path exists, creates the Bounces/, Stems/, Projects/, and Reports/ subfolders if they’re missing, and saves the path so it persists across app restarts.
You can also click Open Folder to reveal the storage directory in Finder (or File Explorer on Windows) at any time.
-
Drop stems in
Stems/only — there’s no other way for the app to know a file is a stem. Any audio file inBounces/is treated as a bounce regardless of its name. -
Name files with the song name first — the normalizer strips suffixes from the end.
Ancient Dusk - Clean.wavgroups correctly;CLEAN_AncientDusk_v3.wavmay not. -
Import regularly rather than in bulk — the more songs already in your library, the better Phase 1 matching works. Importing incrementally reduces the chance of files clustering incorrectly in Phase 2.
-
Unmatched stems stay in the inbox — if you see stem files still in
Stems/after an import, it means no matching song group was found. Import the corresponding bounce or project first, then import the stems again.
Related
Section titled “Related”- Connecting Dropbox — sync files across devices
- Managing Dropbox Connection — troubleshoot sync issues
- Importing Tracks — trigger an import from the Files page
- Notifications — stay updated on import completions