The Media Library page is the central hub for managing your local audio collection. It is a three-tab page backed entirely by MySQL: Library, Playlist, and Export. All scanning happens in a background thread — the UI stays responsive during large imports.
| Tab | Purpose |
|---|---|
| Library | View, search, and manage your scanned audio files. Add folders or individual files, edit metadata, look up MusicBrainz data, push to stream. |
| Playlist | Two-panel: top panel lists saved playlists, bottom panel shows track entries. Create, edit, and save playlists with broadcast automation rules. Open in ComposerPro for broadcast log production. |
| Export | Export the current playlist to M3U, M3U8, PLS, XSPF, or TXT format for use in other media software. |
Click Add Files to open a multi-select file dialog. Select one or more audio files (any FFmpeg-supported format). The same background scan worker processes the explicit file list — TagLib reads each file, records are inserted into media_items, and the library updates when complete.
Formats supported: MP3 (ID3v2), FLAC, WAV, AAC (.m4a), OGG Vorbis, Opus, WMA, AIFF — any format TagLib can read tags from and FFmpeg can decode. TagStack reads whichever tags are present; missing fields are left blank.
| Column | Source |
|---|---|
| Title | ID3/tag title field read by TagLib |
| Artist | ID3/tag artist field |
| Album | ID3/tag album field |
| Genre | ID3/tag genre field |
| Format | File extension (MP3, FLAC, WAV, etc.) |
| Duration | Track length in MM:SS from TagLib audio properties |
| BPM | ID3 BPM tag or 0 if not tagged |
| Year | Release year from tag |
| Added | Timestamp when the record was inserted into MySQL |
Right-click any track in the Library list to access the context menu:
Mcaster1MediaPlayer.exe with --file pointing to the track path.MusicBrainz lookup is the primary way to get structured identifiers and music intelligence data into your library:
| Field | Description |
|---|---|
mbid | MusicBrainz Recording ID (UUID) — globally unique track identifier |
isrc | International Standard Recording Code — 12-character standard ID used by labels and PROs |
label | Record label name from MusicBrainz release info |
mood | Mood tag derived from MusicBrainz folksonomy data (e.g. "energetic", "melancholy") |
mb_rating | MusicBrainz community rating (0-100) |
Tip: MBID and ISRC are essential for professional broadcast stations that need to report to PROs (ASCAP, BMI, SOCAN). Run MusicBrainz lookup on your entire library after the initial scan.
Every track has a weight field (default 1.0). Higher weight values make a track more likely to appear when ComposerPro's rotation categories auto-populate a broadcast log. Edit the weight via the Metadata Editor. Useful for putting "power rotation" tracks at weight 3.0 and deep-cut filler tracks at 0.5.
The Playlist tab is split into two panels stacked vertically:
Each saved playlist can carry a set of broadcast automation rules. ComposerPro reads these rules when auto-populating a log from a rotation category backed by this playlist.
| Rule | Description |
|---|---|
| Artist Separation (seconds) | Minimum elapsed seconds before the same artist can play again. 0 = no restriction. Example: 1800 = same artist no more than once per 30 minutes. |
| Title Separation (seconds) | Minimum elapsed seconds before the same track title repeats. Prevents back-to-back or quick-repeat plays of the same song. |
| Genre Mix (JSON) | Target percentage mix by genre. Example: {"Pop":50,"Rock":30,"R&B":20}. ComposerPro uses this to select tracks proportionally when filling a clock slot from this playlist's category. |
| BPM Min / Max | Only tracks with BPM in this range will be selected during auto-population. 0 = no limit. Example: 90-130 for a mid-tempo rotation. |
| Energy Mode | Flat — no energy ordering. Ramp Up — tracks sorted low-BPM to high-BPM across the playlist. Ramp Down — high-BPM to low-BPM for a cool-down effect. |
Double-click any saved playlist in the top panel (or select it and click Open in ComposerPro). TagStack launches Mcaster1PlaylistComposerPro.exe with --playlist-id pointing to the selected playlist. ComposerPro loads the tracks directly into its log grid, ready for editing, clock-template application, and export.
The Export tab lets you export the currently loaded playlist to several formats for use in external players and automation systems:
| Format | Extension | Use With |
|---|---|---|
| M3U | .m3u | Windows Media Player, VLC, most media players |
| M3U Extended | .m3u8 | VLC, Kodi, IPTV players; UTF-8 encoded with #EXTINF tags |
| PLS | .pls | Winamp, foobar2000, SAM Broadcaster |
| XSPF | .xspf | VLC, Amarok; XML-based playlist format |
| Text | .txt | Simple line-by-line file path list; readable by any text editor |
Click Browse to choose the output file path, select a format from the dropdown, and click Export.
TagStack supports OLE drag and drop in the Media Library. You can drag audio files from File Explorer and drop them directly onto the Library list or the Playlist track list. The drop is handled as an Add Files operation — the dropped files are processed through the background scanner and added to MySQL before appearing in the list.