Free Software

Useful things for no money!

         

Twitterbox...

Home
Contact Me / Pick My Brains

Downloads

Engineer's Corner

User Forum


DAC Cartwall

JockMaster

Meridian

MyLibrary

SHOUTcaster

txIP

Yak

Free Software

Welcome to free software 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, Meridian MyLibrary, SHOUTcaster, txIP and YakLite.

How It's Done
Much of my software is written in VB6 and .NET although I do use Delphi 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't offer much support for the applications listed on this page.

Custom Software Solutions
Sometimes, existing software solutions don't match your exact needs - so why not create your own ?  Whether you need a simple audio player, list maker, file tagger or perhaps something that mixes features from several programs into 1 simple screen - I may be able to help.

  • DARPMix - custom creation for Blue Revolution
    Takes a playout log from DARP and produces an XML playlist for mixdown to a single audio file - aids in the production of syndicated programming.

  • DTMF Detector
    Triggers external events based on DTMF signals received from an audio STL

  • PlaylistSplitter
    Takes a daily playlist and splits it into 24 "hourly" files so that they can be used with playout software that prefers (or explicitly requires) hourly playlists

If you find any of the free programs here useful - why not send me a fiver and buy my lunch...?!

Buy Me Lunch

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

CartPlayer v1.3
It's a free triple-stack cartridge player!
MyLibrary v2.23   [updated]
Music Library Admin - standalone and/or for JockMaster

DAC Cartwall v2.21   [updated]
Instant audio player
Download Product Info
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 Stuff
Things I wrote for DARP/ProTrak
RecMe
Simple production and telephone recorder and editing application
Download RecMe Product Info

THIS FUNCTION IS NOW BUILT INTO DAC CARTWALL

DTMF Detector
Control playout software or TA Flag using in-band tones
SHOUTcaster v1.4
Updates a SHOUTcast server from a text file - allows you to interface a playout program to your "now playing" stream.
JockMaster
Automation/Live-Assist Playout application
StudioScreen
OnAir display, audio routing and e-mail/talkback
   
Meridian
Music Library Management and Scheduling Package
Download Meridian Product Info
txIP
Broadcast audio distribution/STL software
Download txIP Product Info

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

Yak SIP Telephone System
Download Yak! Product Info
   
MP3List
Audio File listing tool
   

CartPlayer v1.3- Free Triple-Stack Cart Machine
Last updated 2nd July 2010

Licence : Freeware
Download : CartPlayer v1.3

What Is It ?
It is what it looks like - a set of cart machines!  You have a file+folder view on the left of the window showing available drives, folders and audio files - whilst the default view offers a set of 3 "cart" machines modelled on the famous Sonifex microHS series.  You can also change them to 3 ITC Series 99 machines or an ITC triple-stack.

They work just like the real-thing - Drop a file into the "slot", press play - the timer counts down with the audio.  After play, the Stop button will flash to indicate that the cart has finished. You can pause the cart by pressing stop, but remember to re-cue it before re-starting it ;)  Double-clicking a cart will eject it.  You can also Start the slots by pressing F1, F2, F3.  Files can also be dropped from any "Explorer" window.  The "cart labels" are populated using the ARTIST - TITLE syntax from the filename.  I will add APE/ID3 support and sequence play in the next update.

It seems like somebody actually beat me to this software - a Dutch website is offering a similar product:
http://www.csnmedia.nl/CSN_media_Software/Jingleplayer.html

v1.2 now includes some authentic load, eject and fast-cue sound fx... Everything you could want from a cart machine except the wow and flutter!

v1.3 Update : Carts 1-2-3 will now sequence - ideal for commercial breaks.  Click the round circle under the slots to toggle.
ITC Series 99 Cart 4 is now working!
 

CartPlayer Screen

Download the full ZIP file here - just unzip the contents into any folder.  If you get any DLL/OCX errors - please let me know.
If you've already got v1.0 - you can get the updated EXE here.

NOTE: Some users have reported a TR/Dropper alert from Avira AntiVir - this is a false alert and the files are quite safe ;)

Sonifex Cart Machine Skin

ITC Series 99 and Triple-Stack Skins
    

 


DADMAN - Remote Control AddOn for Enco DADpro32
Last updated 13th April 2010

Licence : Freeware - but registration is required
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.

FREE REGISTRATION is required to use DADMAN beyond the 10-minute limit!

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.

EncoDAD Export Utility
This is a small but effective program that I wrote for somebody who wanted to export their DAD CUTS.dbf file to a tab-delimited text file.  It exports a number of DAD database fields and the resulting output file can then be read by Access, Excel or a music scheduler.

Download EncoExportUtil   [freeware]

This utility is offered "as-is", if you find it useful - let me know. 


DARP Stuff
Last updated 4th May 2010

DARP/ProTrak Exporter
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.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.  Please get in touch if you would like the Powergold automation template for DARP.

DARP / ProTrak Exporter - Startup Screen

DARP / ProTrak Exporter

DARPMix
Another custom app for Blue Revolution.  It converts the schedule.mdb Log to a mAirList XML playlist which is then mixed-down to a single WAV file during pre-production of their syndicated programmes.  A mAirList script is also part of the procedure - this adds envelope positions to duck the songs around the voicetracks.

Essentially, it saves you having to play a DARP Log and recording it back into the computer in real-time.  A real labour-saver!


DTMF Decoder - control playout software or TA Flag via DTMF
Last updated 14th July 2010

Licence : Buyware - custom app

This application does exactly what it says on the, errr, tin... It receives DTMF tones from your default recording sound device and if they are one of the 6 pre-programmed codes and event will be triggered.  Internally, there is support for mAirListCommand which can issue a Cartwall/Playlist/Player command to control split-advert machines or regional jingles etc.  There also exists the possibility to control your RDS' TA Flag using a logic output from your COM port.

This was a custom build for a client in Europe - created in less than a day from enquiry to delivery.  It is used to accept DTMF tones down their analogue STL which in-turn controls their local playout.  They can also trigger the local transmitter's TA Flag on the RDS unit using the 51# and 510 sequence of tones.

UPDATE: It now includes a TCP server that can accept command strings sent via TCP/IP from a playout system.

The example below shows the sequence 51# being received and the appropriate indicator lighting-up...

Although this solution was a custom-build, it is available on a buy-out basis - please contact me for details..


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.

This program has been customized for several users - including a community radio station running 3 copies: 2 studios and a reception screen.

MiniClock In Use
    

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...

mAirList v2 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('C:\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!

I am also happy to assist with mAirList layouts for Community/RSL groups and home broadcasters - please get in touch to discuss.


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


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 ;)

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

This page was last updated on Monday July 26, 2010