Logo Radiogram
Radiogram

Radiogram

Current Version: 1.0.0a

RadioGram

Console Radio Broadcast Management System Version: 1.0a Author: Jason Page Started: Thanksgiving Day 2020 License: GPL-3+

Overview

RadioGram is a comprehensive radio broadcast system designed for console Linux environments. It provides professional radio automation capabilities including music rotation, scheduling, live input, and streaming - all from a text-based interface.

Features

  • Automated Music Rotation - Uses MPD (Music Player Daemon) for playlist management
  • Scheduler - Schedule content to play at specific dates and times
  • Sound Pad - 0-9 programmable pads for live sound effects
  • Live Microphone - Space bar toggles microphone input on/off
  • Streaming - Built-in Icecast/Shoutcast encoder support
  • Rotation System - Automatic jingle and commercial insertion
  • Device Selection - Choose input/output audio devices on the fly
  • MPD Configuration - Full control over MPD connection settings
  • Quick Start

  • Ensure MPD is running:
  • bash
       systemctl --user start mpd
       
  • Run radiogram from any directory:
  • bash
       radiogram
       
  • Press 'C' to configure:
  • - Set up streaming (option 1) - Select audio devices (options 2-3) - Configure rotation/shuffle (option 4) - Configure MPD connection (option 5)
  • Press 'H' for help on keyboard controls
  • Installation

    From .deb Package

    bash
    sudo dpkg -i radiogram1.0aamd64.deb
    sudo apt-get install -f  # Install dependencies if needed
    

    Dependencies

  • mpd - Music Player Daemon
  • mpc - MPD command-line client
  • mpv - Media player
  • ffmpeg - Audio encoding for streaming
  • alsa-utils - Audio device utilities
  • Configuration Files

    RadioGram stores configuration in the current working directory:
  • radiogram.cfg - Main configuration (audio devices, streaming, MPD settings)
  • radiogram.sch - Scheduler entries (date/time and file paths)
  • radiogram.pad - Sound pad mappings (pads 0-9)
  • radiogram.lst - Current playlist file path
  • ~/Music/pads/ - Default location for sound pad audio files
  • Keyboard Controls

    | Key | Action | |-----|--------| | SPACE | Toggle microphone on/off | | ENTER | Add scheduled content | | 1-9 | Play sound pad 1-9 | | SHIFT+1-9 | Program sound pad 1-9 | | ALT+1-9 | Preview sound pad 1-9 | | C | Configuration menu | | R | Rotation/shuffle configuration | | E | Toggle streaming encoder | | S | Set/remove config lock | | H | Help | | A | About | | Q or ESC | Quit program | | UP/DOWN | Change output device | | LEFT/RIGHT | Change input device |

    MPD Setup

    RadioGram requires MPD (Music Player Daemon) to be installed and running.
  • Install MPD:
  • bash
       sudo apt install mpd mpc
       
  • Configure MPD (usually in ~/.config/mpd/mpd.conf or /etc/mpd.conf)
  • Start MPD:
  • bash
       systemctl --user enable --now mpd
       
  • In RadioGram, press 'C' then '5' to configure MPD connection:
  • - Host: localhost (or remote IP) - Port: 6600 (default) - Music Directory: /path/to/music (optional)

    Streaming Setup

    To stream to an Icecast/Shoutcast server:
  • Press 'C' for config, then '1' for stream configuration
  • Enter server URL (without http://)
  • Enter port (default 8000)
  • Enter mount point (e.g., /stream)
  • Enter bitrate (e.g., 128)
  • Enter source password
  • Choose 'Y' to enable streaming immediately
  • Press 'E' to toggle the encoder on/off during operation.

    Rotation/Shuffle Mode

    To set up automatic music rotation with jingles and commercials:
  • Press 'R' for rotation configuration
  • Set Music Folder - Browse to your music library
  • Set Jingle Folder - Browse to jingles directory
  • Set Commercial Folder - Browse to commercials directory
  • Set Jingle Interval - Play jingle every X songs
  • Set Commercial Interval - Play commercial every X songs
  • Press 'S' to start shuffle mode
  • Supported Audio Formats

  • MP3, WAV, OGG, FLAC, M4A (via MPV and MPD)
  • Troubleshooting

    If you encounter issues:
  • Check system messages in the status line at the bottom of the screen
  • Verify MPD is running: mpc status
  • Check audio devices: arecord -L and aplay -L
  • Ensure sound files are accessible and in supported formats
  • Check /tmp/radiogram_*.err files for error details
  • Tips

  • Use ALT+1-9 to preview sound pads before triggering them live
  • Set a config lock password (press 'S') to prevent accidental changes
  • The scheduler uses format: MM-DD-YYYY HH:MM:SS
  • Audio files in sound pads should be short (under 30 seconds recommended)
  • For best streaming quality, use 128kbps or higher bitrate

Contact

Author: Jason Page Email: jsp@pagetelegram.com Source: https://github.com/pagetelegram/radiogram

License

RadioGram is free software licensed under the GNU General Public License version 3 or later (GPL-3+). See /usr/share/doc/radiogram/copyright for full license information. --- RadioGram - Professional radio automation for the console

Download Options

Free Download: Source code and changelog are freely available below.
Compiled Versions: Support development with a donation via PayPal to receive compiled binaries.

Free Downloads

📦 Download Source Code

Compiled Binaries (Donation-Based)

Support this project and get instant access to compiled versions for your platform.

Debian Linux

Changelog

Changelog

All notable changes to RadioGram will be documented in this file. The format is based on Keep a Changelog.

[1.0a] - 2025-11-23

Added

  • Initial alpha release of RadioGram
  • Automated music rotation using MPD (Music Player Daemon)
  • Scheduler system for timed content playback
  • - Date/time based scheduling with MM-DD-YYYY HH:MM:SS format - Automatic queue management
  • Sound pad system (0-9) for live sound effects
  • - Browse and program sound pads - Preview functionality (ALT+1-9) - Support for MP3, WAV, OGG, FLAC, M4A formats
  • Live microphone input with toggle control
  • - Space bar for quick on/off - Device selection support
  • Streaming capabilities
  • - Icecast/Shoutcast encoder support via ffmpeg - Configurable bitrate - Automatic reconnection on stream failure
  • Advanced rotation/shuffle mode
  • - Automatic jingle insertion at configurable intervals - Automatic commercial insertion at configurable intervals - Recursive music library scanning - Fisher-Yates shuffle algorithm
  • Audio device management
  • - Dynamic input device selection - Dynamic output device selection - Arrow key navigation for quick device switching
  • MPD configuration
  • - Custom host and port configuration - Remote MPD server support - Music directory path configuration
  • Configuration management
  • - Password-protected configuration lock - Persistent configuration storage - Multiple configuration files (cfg, sch, pad, lst)
  • User interface
  • - Full-screen console interface - Real-time status display - System message/error reporting - Help system with keyboard shortcuts
  • Error handling and logging
  • - Comprehensive error file logging in /tmp - User-friendly error messages - Automatic cleanup of old error files

    Technical Details

  • Written in FreeBASIC
  • Uses ALSA for audio device management
  • Integration with MPD/MPC for playlist management
  • Integration with MPV for sound pad playback
  • FFmpeg-based streaming encoder
  • Supports both local and remote MPD servers
  • Configuration Files

  • radiogram.cfg - Main configuration
  • radiogram.sch - Scheduler entries
  • radiogram.pad - Sound pad mappings
  • radiogram.lst - Current playlist file path
  • Default pads directory: ~/Music/pads/
  • Dependencies

  • mpd - Music Player Daemon
  • mpc - MPD command-line client
  • mpv - Media player for sound pads
  • ffmpeg - Audio encoding for streaming
  • alsa-utils - Audio device utilities
  • Known Limitations

  • Maximum 255 scheduled entries
  • Maximum 500 shuffled tracks
  • Maximum 50 jingles
  • Maximum 100 commercials
  • Maximum 50 input/output devices
  • Sound pad preview displays for 2 seconds
  • Project Timeline

    Started: Thanksgiving Day 2020 Author: Jason Page License: GPL-3+ ---

    Release Notes

    Version 1.0a (Alpha)

    This is the first public alpha release of RadioGram. The software has been in development since Thanksgiving 2020 and provides a complete radio broadcast automation solution for console Linux environments. Highlights:
  • Full radio automation capabilities
  • Professional-grade scheduler
  • Live mixing with sound pads and microphone
  • Streaming support for Icecast/Shoutcast
  • Advanced rotation system with jingle/commercial insertion
  • Target Users:
  • Internet radio broadcasters
  • Community radio stations
  • Podcast producers
  • Amateur radio enthusiasts
  • Anyone needing automated audio playback with live mixing
  • Next Steps:
  • Gather user feedback
  • Bug fixes and stability improvements
  • Additional features based on community requests
--- For support and bug reports, please contact Jason Page at jsp@pagetelegram.com or visit the project repository.