Why RadioDJ? Features and Use Cases
RadioDJ is a free Windows-based radio automation platform that punches significantly above its price point. Despite being freeware, it delivers features that match or exceed paid competitors: a full music scheduler, category rotation engine, jingle scheduler, crossfade and overlap settings, timed events, encoder integration, and a plugin system for extending functionality.
RadioDJ is particularly well-suited for small to medium internet radio stations that don't need an enterprise solution but do need something more robust than manually managing playlists. Its database-driven approach — all track metadata and rotation history stored in MySQL — makes it resilient and scalable for libraries up to tens of thousands of tracks.
Installation and First Launch
Download the latest RadioDJ installer from radiodj.ro. Run the installer as administrator. RadioDJ does not install as a Windows service by default — it runs as a regular desktop application. For unattended 24/7 operation, you'll need to configure Windows to auto-login and launch RadioDJ at startup.
On first launch, RadioDJ will prompt you to configure a database connection. Do not skip this step. RadioDJ requires a database to store its music library — without it, the software cannot function. You have two options: MySQL (recommended) or the embedded H2 database (acceptable for small setups but not recommended for libraries over 5,000 tracks).
Create a Windows Task Scheduler entry to launch RadioDJ at system startup: open Task Scheduler → Create Basic Task → name it "RadioDJ Autostart" → Trigger: When computer starts → Action: Start a program → point it to the RadioDJ executable. Check "Run only when user is logged on" and configure Windows to auto-login so the station keeps running after a reboot.
Database Configuration (MySQL vs Embedded)
For any serious station, use MySQL or MariaDB. The embedded H2 database is fragile — it doesn't handle concurrent access well and tends to corrupt after unexpected shutdowns. MySQL is free, stable, and easily installable on Windows via XAMPP or the official MySQL installer.
Install MySQL or XAMPP. Open MySQL Workbench or phpMyAdmin and create a new database and user for RadioDJ:
CREATE DATABASE radiodj CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'radiodj'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON radiodj.* TO 'radiodj'@'localhost';
FLUSH PRIVILEGES;
In RadioDJ's database configuration screen, enter: Host = localhost, Port = 3306, Database = radiodj, Username = radiodj, Password = your password. Click "Test Connection" — it should confirm success. RadioDJ will then create all required tables automatically on first connection.
utf8mb4 charset in the CREATE DATABASE statement is important. If you use the default latin1, tracks with international characters (accented letters, non-Latin scripts) will have corrupted artist and title fields in the library. This causes metadata display issues downstream.Setting Up Music Categories
Categories are the foundation of RadioDJ's rotation system. Every track in your library must be assigned to a category, and the category settings control how and how often tracks from that group are played. Think of categories as buckets — Top 40 Hits, Classic Rock, Current Hits, Slow Songs, Jingles, Station IDs, etc.
Go to Settings → Categories and create your first categories. For each category, configure:
Minimum time between track repeats: How many hours must pass before the same track can play again. For a large current hits category, 3–4 hours is standard. For a small jingle category, set this to 0 or 1.
Maximum tracks per hour: How many tracks from this category can play in a single hour. Useful for limiting how often any single category dominates the hour.
Use in rotation: Check this for all main music categories. Uncheck it for categories you want to control manually (e.g., a special event category).
After creating categories, import your music: Library → Add Tracks → Browse to your music folder. RadioDJ scans all MP3 files, reads their ID3 tags, and imports them into the database. Mass-assign newly imported tracks to categories via Library → Assign Category with filters.
Configuring Rotation Rules
RadioDJ uses a "Clock" system to define what plays in each hour. A clock is a template that specifies the sequence of category slots for one hour — for example: Slot 1 (Current Hits), Slot 2 (Current Hits), Slot 3 (Classic Hits), Slot 4 (Station ID), Slot 5 (Current Hits), etc. The clock repeats every hour unless overridden by a scheduled event.
Go to Settings → Clocks and create a clock. Add slots in the order you want them to play. Each slot specifies a category — RadioDJ picks the best eligible track from that category based on your minimum repeat rules. You can add multiple clocks for different day parts (Morning Show, Afternoon Drive, Overnight).
Assign clocks to hours in the weekly schedule grid: Settings → Schedule. Click each cell (day + hour) and assign the appropriate clock. You can assign the same clock to multiple cells at once by drag-selecting. At minimum, fill the entire grid with your default clock — any uncovered hour will fall back to sequential playback, which ignores rotation rules.
Test your rotation by running RadioDJ for a few minutes and watching the Now Playing area. Check that: the same track doesn't repeat within your minimum repeat window, categories rotate in the sequence you defined in the clock, and no hour runs out of eligible tracks (watch for "No eligible track" errors in the log).
Scheduling Jingles and Station IDs
RadioDJ handles jingles through its category and clock system. Create separate categories for each type of audio ID you use: Station ID (short "You're listening to..." clips), Sweepers (longer bumper audio), Time announcements, etc.
Add jingle slots to your clock at the positions you want them to fire — typically between music tracks. For a jingle every 3 songs, add one jingle slot after every 3 music slots in your clock template. RadioDJ will pick a different jingle each time based on the category's rotation rules.
For more precise jingle control, use the Timed Events feature: Settings → Timed Events. Create an event that fires at a specific time (e.g., top of every hour) and plays a specific track or category. This is ideal for mandatory hourly station IDs or time-sensitive announcements. Set the event's "Interrupt" setting to determine whether it interrupts the current track or waits for it to finish.
Need this fixed by an expert?
RadioTech Studio diagnoses and fixes radio issues fast — usually same day. Send us your details.
Encoder Setup: Streaming to Icecast/Shoutcast
RadioDJ has a built-in encoder system that sends your broadcast directly to an Icecast or Shoutcast server. Go to Settings → Encoders and click Add to create a new encoder.
For Icecast, configure:
Server Type: Icecast
Server: your-server-ip-or-hostname
Port: 8000
Mount Point: /stream
Username: source
Password: your-source-password
Bitrate: 128 (or your chosen rate)
Format: MP3
Metadata: enabled, format "%artist% - %title%"
For Shoutcast DNAS 2, change Server Type to Shoutcast and use the SID (stream ID) instead of a mount point. The password format for Shoutcast v2 is your-password:streamid — for example, hackme:1 for stream 1.
Click "Test" to verify the connection. If the test fails, check: firewall rules on the server (port 8000 must be open), correct source password (not admin password), and whether the mount point exists in Icecast's config. Enable "Auto-reconnect" so RadioDJ reconnects automatically if the connection drops.
You can configure multiple encoders — for example, one 128kbps MP3 and one 64kbps AAC — to serve different listener needs simultaneously. Each encoder requires a separate mount point on the Icecast server.
Pro Tips for Stable Operation
Set RadioDJ to high process priority. In Windows Task Manager, right-click the RadioDJ process → Set Priority → High. This prevents Windows from throttling RadioDJ when other applications compete for CPU, which can cause audio stuttering or missed crossfades.
Disable Windows Update automatic restarts while RadioDJ is running. Configure Windows Update to "Notify to schedule restart" rather than restarting automatically. An unplanned reboot during a live broadcast is preventable.
Back up your RadioDJ database regularly. The entire station setup — tracks, categories, clocks, rotation history — lives in MySQL. A database backup is a few MB and takes seconds. Schedule a daily mysqldump to a backup folder and copy it offsite weekly.
mysqldump -u radiodj -p radiodj > C:\backup\radiodj_%date%.sql
Monitor disk space. RadioDJ writes detailed logs — these grow over time. Check the RadioDJ logs folder periodically and archive or delete old logs. Running out of disk space causes RadioDJ to fail silently on log writes, which can obscure the real error when something else goes wrong.
Use a dedicated machine or VM for RadioDJ. Running RadioDJ on a general-purpose workstation alongside a web browser, office software, and other tools increases the risk of interference. A dedicated low-power PC (or a Windows VM on a server) provides a stable, controlled environment with no competing processes.