Software Zone
Last updated 08 March 2010
Home | Contact / Pick My Brains | Downloads | Engineer's Corner | Software
DAC Cartwall | JockMaster | MyLibrary | RecMe | SHOUTcaster | Trust Scheduler | txIP

Software Zone

Welcome to my new Software Zone page - this initial page offers some simple utilities which are free to use.  Of course, you will also find details of my buyware applications like  DAC Cartwall, JockMaster, MyLibrary, SHOUTcaster, StudioScreen, Trust and YakLite.

How It's Done
Much of my software is written in Visual Basic 6 although I do use Delphi 7 Personal from time-to-time.  What does VB6 source-code look like ?  A bit like this!
  I've been using VB since about 2001 and before that my first programming exploits involved writing in BASIC on a BBC model "B" (Beeb) from the Micro User magazine - the first program I wrote was a fruit-machine game called Fruits.  After progressing to a light-speed 8MHz XT PC in 1993, I began to explore MS-DOS and got into audio/radio in a big way.

Sometime around 1996 (whilst conjuring-up lots of audio delights in WaveStudio under Windows 3.1), I wrote a very simple DOS-based audio player.  Once I got going with a 32bit OS I eventually took the plunge with VB.

My main desktop PC is a 3.6GHz single-core P4 with 2GB RAM.  It currently runs Windows XP Pro with SP3.  I also have a couple of other machines here for testing purposes.  As I do not currently run Windows7, I can offer no support for the applications listed on this page - they should work as they are mostly simple applications but if you have an issue with one of my programs under Windows7 then I'd like to know about it.

The links below take you to the relevant software - the free applications are bookmarked on the this page whilst the paid-for ones have their own dedicated pages.

AdMan *preview here*
Advert and Promo Scheduling - M3U "ad break" creator
Oops
Silence detector

DAC Cartwall   [updated]
Instant audio player
Pips
BBC-style time signal player ;)
DADMAN Remote Controller for Enco DADpro32
Controls Enco DAD/Presenter from your Game Port/Keyboard
PlaylistSplitter
Splits a daily playlist into 24 hourly files
DARP/ProTrak Exporter
Exports Audiowall and Scheduler database to text-file
RecMe
USimple production and telephone recorder and editing application
JockMaster   [updated]
Automation/Live-Assist Playout application
SHOUTcaster
Updates a SHOUTcast server from a text file - allows you to interface a playout program to your "now playing" stream.

MiniClock
Add-on clock and now playing display for your studio

StudioScreen
OnAir display, audio routing and e-mail/talkback
MP3List
Audio File listing tool
Trust
Music Scheduler
MyLibrary
Music Library Admin - standalone and/or for JockMaster
txIP
Broadcast audio distribution/STL software

I've now set-up a forum on this site where you can discuss this software (and other broadcast topics)...

DADMAN - Remote Control AddOn for Enco DADpro32
Last updated 30th January 2010

Licence : Freeware
Download : DADMAN.zip

What Does It Do ?
DADMAN is a simple system-tray utility that allows you to control Enco DADpro32 (or Presenter) via an analogue 15-pin game port or via USB (with a suitable converter).  6 keyboard commands are also available - both the game-port and keystrokes allow for 1 or 2 DCL commands to be sent, this could be useful for firing split machines.

The DAD API and Windows Multimedia DLLs are included with the download - just ensure that everything is un-zipped to the same folder.

DADMAN Screen

Features:

  • Up to 6 Game Port Buttons
    Define up to 6 DCL events such as Play, Stop, Superplay etc

  • 6 Keystrokes
    Using a programmable keyboard/keypad (such as a Tipro), you can assign popular DCL commands to a single keystroke.  These are system-wide so you don't need to have DADMAN in focus, it is designed to live in the System Tray next to the clock.

  • Send DCL Commands to different DAD workstations
    Up to 2 DAD workstations can receive each action: multiple DCLs can be specified by chaining them with a colon, eg: SUPERPLAY PBK1:SUPERPLAYPBK2

  • Control any DAD machine on your network
    Any visible DAD workstations may be controlled - just change localhost to the relevant IP Address or NetName

This free and simple application enables you to quickly set-up your mixer for remote-starts without additional GPI hardware.

 


DARP / ProTrak Exporter
Last updated 21st October 2009

Licence : Freeware
Download : DARP / ProTrak Exporter

Introduction
DARP is a rather neat playout software by Chris Oakley - however it's a bit restrictive in terms of scheduling.  This application takes your DARP Carts (and a ProTrak Database if you have one) to produce a ¬ delimited output which you can import into a scheduler.  This enables you to import your data into a scheduler for "proper" music scheduling.  See my Engineer's page for a Powergold template.  There is also an option to create .bcx Info Files should you wish to merge your data to BCX3 ;)

This application was a custom-build for Blue Revolution, but is offered here "as-is" - if you find it useful, please let me know.

DARP / ProTrak Exporter - Startup Screen

DARP / ProTrak Exporter


MiniClock - Add-on display for mAirList
Last updated 2nd January 2010

Licence : Freeware
Download : MiniClock v1.3

Introduction and Background
Designed to show current time and status information from your playout software - works directly with mAirList.  Shows "now playing" from a text file created by your playout software - OnAir/OffAir, Traffic Flag and End of Song alerts controlled via mAirList scripts.

27th November Update, v1.3
Added RS232 support to control the indicators - When the CT, CTS and DSR pins are high (+5v) they will illuminate the OnAir, Traffic, and EOM LEDs respectively.

For more functionality, please see StudioScreen.

MiniClock In Use - click here to see a larger version
    

MiniClock - Main Screen showing mAirList status, current song and analogue clock

Limitations
My studio (and test machine) uses 1280x1024 resolution and I have not yet coded in any object re-sizing - so you MUST run your monitor at that resolution otherwise it'll look quite messy!

Using MiniClock
MiniClock supports multiple montors, allowing you to show it on a 2nd screen.  At present, MiniClock reacts to TXT files that mAirList creates via a script - a future version will incorporate "Window Messages".  You will need to tell MiniClock where the STATUS files are located - I have defaulted them to C:\mAirList as this seems a likely location!  There are (at present) 4 files to create/manipulate: currentsong.txt ,  EOMSTATUS.TXT , ONAIRSTATUS.txt and TRAFFICFLAG.txt  You can change the locations of these files by editing the MiniClock.ini file via any text editor...

These files are written to by mAirList when using the MLS scripts show below...

Scripts
You will need to add the following to a Notification script:

var sl: TStringList;

procedure OnOnAir;
begin
sl := TStringList.Create;
sl.Add('[OnAir]');
sl.Add('Status=1');
sl.SaveToFile('S:\ONAIRSTATUS.txt');
sl.Free;
end;

procedure OnOffAir;
begin
sl := TStringList.Create;
sl.Add('[OnAir]');
sl.Add('Status=0');
sl.SaveToFile('S:\ONAIRSTATUS.txt');
sl.Free;
end;

procedure OnCartPlayerStop(PlayerControl: IPlayerControl; Item: IPlaylistItem; Duration: int64);
begin
sl := TStringList.Create;
sl.Add('[EOM]');
sl.Add('Status=0');
sl.SaveToFile('C:\mAirList\EOMSTATUS.txt');
sl.Free;
end;

procedure OnCartPlayerEOFWarning(PlayerControl: IPlayerControl; Item: IPlaylistItem);
begin
sl := TStringList.Create;
sl.Add('[EOM]');
sl.Add('Status=1');
sl.SaveToFile('C:\mAirList\EOMSTATUS.txt');
sl.Free;
end;

procedure OnPlayerStop(PlayerControl: IPlayerControl; Item: IPlaylistItem; Duration: int64);
begin
sl := TStringList.Create;
sl.Add('[EOM]');
sl.Add('Status=0');
sl.SaveToFile('C:\mAirList\EOMSTATUS.txt');
sl.Free;
end;

procedure OnPlayerEOFWarning(PlayerControl: IPlayerControl; Item: IPlaylistItem);
begin
sl := TStringList.Create;
sl.Add('[EOM]');
sl.Add('Status=1');
sl.SaveToFile('C:\mAirList\EOMSTATUS.txt');
sl.Free;
end;

sl := TStringList.Create;
sl.Add(Item.GetArtist + ' - ' + Item.GetTitle);
sl.SaveToFile('C:\mAirList\currentsong.txt');
sl.Free;

For the Traffic Flag, I use the serial port's DTR pin and this in turn drives an opto-coupler which switches the TA switch on an RDS unit.  The Travel In jingle will need this script under "Action on Start" in it's file properties:

// Set DTR pin on Serial Port HIGH
// used to signal external RDS unit to enable TRAFFIC FLAG

var sl: TStringList;

begin
if Engine.GetOnAir = False then begin
SystemLog('mAirList is in production mode, so no action taken...');

end

else
if Engine.GetOnAir = True then begin
ComPort(1).SetParameters(9600, 8, 'N', 1);
ComPort(1).Open;
IOPort($3FC).WriteOR(1);
sl := TStringList.Create;
sl.Add('[TRAFFIC]');
sl.Add('Status=1');
sl.SaveToFile('C:\mAirList\TRAFFICFLAG.txt');
sl.Free;
SystemLog('Traffic Flag ACTIVE ...');
end;
end.

So, when the Travel Intro is played (either in a Player or via the Cartwall) - the script is also run and creates the TRAFFICFLAG.txt file with a [TRAFFIC] INI key of Status=1 ... MiniClock looks for the number 1 and changes the indicator colour to "on".  The Travel Outro will need this script as an "Action on Stop" in it's file properties:

// Set DTR pin on Serial Port LOW
// used to signal external RDS unit to disable TRAFFIC FLAG

var sl: TStringList;

begin
if Engine.GetOnAir = False then begin
SystemLog('mAirList is in production mode, so no action taken...');

end

else

begin
IOPort($3FC).WriteAnd(254);
sl := TStringList.Create;
sl.Add('[TRAFFIC]');
sl.Add('Status=0');
sl.SaveToFile('C:\mAirList\TRAFFICFLAG.txt');
sl.Free;
SystemLog('Traffic Flag DISABLED ...');
end;
end.

Hopefully this is self-explanatory - the value now reverts to 0 which MiniClock reads and reverts the indicator status back to the "off" colour.

These are the parts that create the files needed for MiniClock to display the information - if you do not know how to use scripts within mAirList, I suggest you visit the support forum!


MP3List - Audio File Listing Tool
Last updated 23rd September 2009

Licence : Freeware
Download : MP3List v1.4

What Is It ?
This application creates a list of files inside a folder - either in basic M3U, or HTML formats.  I have also included a PHP option with line breaks <br> so that you can use a PHP Include for song lists (this is how my songs list is displayed on my Songs page.

23rd Sept 2009, v1.4 Update
I have added a few extra "goodies" onto MP3List: Prefix/Append text - allowing you to specify extra text in the output file.  It now remembers those settings so if you regularly need to perform an action with prepend/append text - the fields are saved between sessions.

MP3List running on Vista


Oops - Silence Detector
Last updated 25th July 2009

Licence : Buyware - £25 per licence
Download : soon

Oops! is a silence detector application that monitors your soundcard (either Line In or What-U-Hear) and after a certain period of silence will perform an action: Launch a program/playlist or play a file.  As Oops! is licensed on a "per machine" basis, you can (subject to sound hardware availability) install additional copies to monitor various feeds/outputs.  Oops! doesn't have to perform an action - it can just be used to monitor the status/quality of an internet feed.

If you use mAirList for playout - a command can be sent to it if there is silence - Useful if an internet stream breaks or an MP3 turns out to contain no sound.

Oops! running on Vista

Oops! Config Options running on Vista

Features include:

  • Detects Silence from Line Input or Stereo Mix
    Can monitor a remote source via the Line In or the current output of a stand-alone automation box (using Stereo Mix/What-U-Hear)

  • Action on Silence
    Oops! can launch a command/program when silence is detected, eg: an emergency playlist or sound file.  It can optionally issue a mAirList command - ie: AUTOMATION 1 NEXT to resume playout on a local (or networked) mAirList playout machine.

  • Multiple Copies on the same Computer
    If you have multiple sound devices, you can run several copies of Oops! on the same computer on 1 licence


Pips - BBC-style pips for your radio station
Last updated 21st February 2010

Licence : Freeware
Download : Pips.zip

Have you ever wanted to broadcast those Radio 4 pips on the hour ?  Of course, you can always press a button to play a sound file but wouldn't it be good if you had automatic pips - on time - and without you having to play it in manually ?!

In conjunction with an internet time client (such as Dimension4), your pips will be played on time at every quarter-hour.  The pips.wav file is included in the download and all you need to do is fade-up your default soundcard each time you want to broadcast the pips - You can even play them by clicking a button if you really want to!

Updated!
A new feature allows you to trigger an external device (such as my BASIC Stamp tone board) to generate the pips.  Sample code is included with the download but you can view it here.  You will need the STAMP development board, a BS2 unit and some discrete components.  If you don't know what these are - then visit this site!

Pips - small and simple

At this time, Pips uses some MCI code to play the WAV file - it will only play via your default playback device.  A more sophisticated version will be built into my MiniClock and StudioScreen applications in due course.


PlaylistSplitter - convert a daily playlist into 24 hourly files
Last updated 19th September 2009

Licence : Freeware
Download : PlaylistSplitter.zip

This simple application takes a daily playlist and splits it into 24 "hourly" files. Typically, it can be used with playlists generated in Evolution, Natural Music and PowerGold so that they can be used with playout software that prefers (or explicitly requires) hourly playlists, eg: mAirList and StationPlaylist Studio.

v1.2 Update
All playlists in the source folder are processed (not just the one you highlight)... Fonts/sizes of the folder and playlist views can now be set.

PlaylistSplitter - Ready to Process

PlaylistSplitter - Done!

 

A simple yet handy utility if you want to break-up a daily playlist into hourly chunks ;)

The Small Print
With the exception of bloggers who may quote brief passages, all text, images and other content is copyright Charlie Davy unless
otherwise specified and may not be re-produced elsewhere without prior written consent.

Something to say ?  Get in touch!