|
Home
Contact Me / Pick My Brains
|
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.
| If you find any of the
free programs here useful - why not send me a fiver and buy my
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- 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:
-
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.
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..
|
|
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 us es 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.
|
|
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 ;)
|
|