TuneStacker

TuneStacker is the engine that turns format clocks and master logs into actual program logs — the files AutoCast reads to know what to play each day. Click Generate Logs and TuneStacker works through your scheduled date range, hour by hour, picking real songs from your library to fill every Random, Fill, and Rotate slot.

How Music Selection Works

TuneStacker's selection engine is designed to sound like a skilled music director, not a random number generator. For every Random or Fill event, it:

  1. Filters the library to tracks matching the event's Attribute/Value criteria.
  2. Groups qualifying tracks by artist.
  3. Picks the artist whose tracks were played longest ago (Least Recently Used). Artists with large catalogs get exactly one vote — the same as artists with a single track — eliminating catalog-size bias.
  4. From that artist's qualifying tracks, picks the one played longest ago.
  5. Among multiple artists tied for "longest ago," selects randomly for variety.

This LRU approach means no artist repeats back-to-back, frequently aired artists wait their turn, and niche artists with small catalogs aren't buried by prolific ones.

Protection spans across the entire batch run — TuneStacker seeds its in-memory history from the on-disk playback history file at the start of each batch, so tracks aired recently in a previous run are also protected.

Auto Mode

Auto mode is the normal daily workflow. TuneStacker matches each day in your date range to a master log by day name — Monday's log generates from the master log file named "Monday," Tuesday's from "Tuesday," and so on. This means your master logs must be named exactly after the days of the week for Auto mode to work.

ControlWhat it does
Start DateThe first day to generate a program log for. Defaults to today.
End DateThe last day to generate a program log for. Defaults to one week from today.
Generate LogsStarts generation for every day from Start to End (inclusive).

Before generating, TuneStacker checks that all needed day-name master logs exist. If any are missing, an alert lists which ones you need to create in MasterBuilder before proceeding.

Output files are named by date in MMddyy format (e.g., 030825 for March 8, 2025) and written to the Program Logs folder.

Manual Mode

Manual mode lets you pick a specific master log for each day, or generate day-named logs independent of a calendar date. Switch to Manual mode with the radio button, then choose a filename format:

Sub-modeOutput filenamesWhat you set
Days Day of week names: Monday, Tuesday, etc. A starting day of the week. Seven rows are always generated (Sun–Sat cycle). Each row auto-selects the matching day-name master log, but you can override any row.
Dates Calendar dates: MMddyy format. A start date and a count (1–60 logs). Each row shows the date and lets you pick any master log.

Each row has a popup listing all your master logs. You must assign a log to every row — any row left at "Select a master log" will block generation with an alert.

💡

Days sub-mode is ideal for generating or regenerating a permanent set of seven day-named program logs that AutoCast cycles through. Dates sub-mode is ideal for generating a batch of dated logs for the coming week.

The Program Log List

The right panel of TuneStacker shows the current contents of your Program Logs folder, with the newest log at the top. The list updates automatically when generation finishes — you don't need to refresh it manually. Click Open program logs folder to reveal the folder in Finder.

Proximity Guard

The gear icon next to the library tally opens the Proximity Guard panel, which controls how aggressively TuneStacker protects against artist and title repetition.

Two sliders set the minimum number of picks that must occur before the same artist or the same title can play again. The badge next to each slider turns color to warn you when your settings are straining the library:

The panel also shows your library stats: total tracks, unique artists, and unique titles. This gives context for why a slider setting triggers a particular color.

Use safe defaults calculates recommended values from your current library (10% of unique artist count, 10% of unique title count) and applies them. This always lands in the green zone for a normally-sized library.

Proximity Guard settings are saved automatically and apply to every subsequent Generate Logs run.

After Generation

When TuneStacker finishes, you'll see a success message in the status bar and a green flash on the speaker icon. The program log list refreshes automatically. If any errors occurred, they appear as red text in the status bar and are also written to the Logging tab (⌘L).