Excel Tag DB Guide

Milonga DJ Pro — building song tags for smarter similar-song & tanda suggestions
Tagging tracks with "mood" and other attributes lets the Milonga DJ Pro recommendation engine consider the emotional arc when suggesting tandas. The most efficient way to manage tags is in a single Excel file.
This guide does not ask you to write Excel from scratch — instead you grow it gradually from a table the app exports for you, so the slow work of building a DB stays efficient and safe.

0. Core principle: Excel is the "master"

The thing you invest time in is the Excel file. The app side is a "copy". Save the Excel file each time and keep backups.

1. The overall flow (round-trip workflow)

STEP 1 — Export the seed
Click ⬆ Export tags in the top bar → tango-library-tags_YYYYMMDD.csv downloads. It is "a list of every track in your library (title, orchestra, year, existing tags)", so you never type from scratch.

STEP 2 — Edit in Excel
Open that CSV in Excel → fill the 3 required tags (below) → save as Excel (.xlsx) (any filename, e.g. tango-library-tags.xlsx).

STEP 3 — Import
Click 🎭 Import tags in the top bar → choose the edited .xlsx.

STEP 4 — Check the sync report
The "Tag sync report" shown after import lists synced count / unmatched Excel rows / still-untagged tracks.
Fix unmatched rows in Excel and re-import; treat untagged tracks as the next batch.

STEP 5 — Iterate in small steps
Don't do everything at once. Start with the orchestras/tandas you use most. Repeat STEP 1–4 to grow it.

2. Columns & how to fill them

Row 1 is the header (English). Rows 2+ are one track each. Do not change the header spelling.

ColumnRequiredContent / how to fill
track_idIn-app ID. If present in the exported CSV, don't touch it (matched first)
titleTrack title (e.g. Bahía Blanca)
orchestraOrchestra (e.g. Carlos Di Sarli)
genretango / vals / milonga / cortina
yearRecording year (1900–2100). Applied if present
singerSinger (blank = instrumental). Applied if present
bpmTempo (number). If blank, the auto-analyzed value is used
keyKey (e.g. Am, D minor, F# minor)
primary_moodPrimary mood (one of the 13 below). Rows with this blank are not synced
secondary_moodsSecondary moods. Comma-separated, multiple allowed (e.g. nostalgia,longing)
flow_typeDescent / Ascent / Sustain / Bounce
intensity1–5 (1 = ambient, 5 = climax)
notesFree memo (use case, "for the opening", etc.)
Fill only the 3 required ones first: primary_mood / flow_type / intensity. title and orchestra are already filled by the export. Tracks of the same orchestra/era tend to share tags, so copy-paste speeds it up.

3. Choosing primary_mood (13 moods)

Mood (JA)Meaning (EN)FamilyTypical use
哀愁Aishū — wistful sorrowmelancholicEarly milonga / closing masterpieces
郷愁Kyōshū — nostalgiamelancholicNostalgic / a moderate opening
諦念Teinen — resignationmelancholicSense of acceptance
切望Setsubō — yearninglongingCraving to move forward
回想Kaisō — reminiscencecalmQuiet memories
安らぎYasuragi — serenitycalmCalm, settled
希望Kibō — hopepositiveThe start of a rise
情熱Jōnetsu — passionpassionateThe core of the climax
決意Ketsui — resolvepassionateStrength of will
喜びYorokobi — joypositiveElation / finale
華やかさHanayakasa — splendorpositiveGlittering elation
軽快Keikai — lightnesspositiveGood tempo, brisk
緊張Kinchō — tensiontenseDramatic tautness
The same family (e.g. 哀愁⇔郷愁⇔諦念) connects naturally; a sudden jump across families needs a bridge track, which the engine accounts for. When unsure, choose by "what the dancer feels in this track". Enter the Japanese term in the cell.

4. flow_type (the track's shape)

ValueMeaningExample
DescentDescending. From peak to calmTail-fade type (Bahía Blanca-like)
AscentAscending. From calm to heatDrama type (Adiós Nonino-like)
SustainSustained, steady energyContinuous tension (La Yumba-like)
BounceBouncing, undulatingCatchy type (El Choclo-like)

5. intensity (1–5)

ValueLevelFeel
1AmbientAtmospheric, light intro
2LowCalm, moderate
3MediumStandard tango
4HighBuilds up
5Max PeakClimax, finale

6. Example (one track)

ColumnValue
titleBahía Blanca
orchestraCarlos Di Sarli
genretango
year1957
singer(blank = instrumental)
primary_mood哀愁
secondary_moods郷愁, 切望
flow_typeDescent
intensity3
notesDowner masterpiece / for opening or closing

7. When a track won't match (matching tips)

On import the app searches in this order:

  1. track_id matches
  2. Title matches + orchestra loosely matches (Biagi and Rodolfo Biagi both OK)
  3. If the title is unique in the library, match by that

Case, full/half-width and bracket notation like [Tango] are absorbed automatically. If it still says "No matching track":

8. Don'ts & cautions

Import = "Excel wins / blanks are left alone". Importing with blank columns won't erase existing tags, but a cell where you did put a value will overwrite. Review once before importing.

9. Recommended approach

  1. Start with the orchestras you use most (your standard tandas)
  2. Copy-paste primary_mood across same orchestra/era at once
  3. Once the 3 required are done, flesh out secondary_moods and year/singer
  4. While building tandas live, note tracks where a suggestion "felt wrong" → reflect in Excel
  5. Use the report's "still-untagged tracks" as your to-do list for next time