Custom Gubbins

Much of what I do is a custom solution for when requirements are “a bit special” – or when there’s no existing solution available.  This page details a few such examples of my work.  Please note that I am fully-booked at the moment and unable to undertake new projects.  If you have a non-urgent enquiry for something and wish to find out if I can do it and when, please get in touch.  Minor mods/tweaks+updates to my existing software remains unaffected.

Splits Monitor
Written to show the status of multiple “split” players across a network.  Uses TCP/UDP as well as RS232 to display status+timing for up to 20 split players.  Panels are green during normal playback, blue at <10sec followed by red at <5sec.

The application can be moved by dragging the bottom/right areas as well as right-click to configure panel layout (1, 2, 3 or x-by-y panels on a grid).  An option to be “always on top” means it can sit on the same machine as your playout software.  The screenshot below shows SplitMon during playback of remote “splits” – and showing the contents of each “break”.  A more basic (and smaller) view is also available, similar to “GARC” – showing timing and current track.

Split Monitor during playback

A lookup application that displays nearby AM, DAB, FM transmitters/services within a set distance from specified location.  Using Ofcom’ TXParams data, it can easily tell you what DAB services are nearby as well as search for local Community Radio stations.

A reduced-functionality version of this software is freely available on the RadioLookup page with the ability to unlock the full feature-set for a one-time £5 donation.

This was written in late 2015 and takes audio from several inputs and offers a VU Meter for each, plus several GPIO displays.  I recently wanted to improve the VU metering on another project and used this as a test for my attack/release timings.

SiteMonitor - custom application

Audio File Backup (with fail-safe validation)
A recent task has been to produce an application that enables audio files (songs, adverts, jingles etc) to be backed-up regularly.  This could easily be achieved with an xcopy batch file but what if the audio file has been corrupted?

My solution was to produce a simple Windows GUI that would look at various audio folders and copy new/replaced files to a backup location but also highlight issues such as significant audio length discrepancies.  It allowed regularly changing items like promos to be copied (and archieved) but issues with songs (that don’t really change duration much!) are flagged for attention.  It became evident that the program needed to know not only the size of the file, but also whether it really did contain audio!

On-Air Controller / Split Routing
I was asked to come up with a reliable “on-air” controller and “split” handler.  Essentially, the customer wanted to use several studios from which to broadcast but to a variety of different “destinations” (ie: transmitters).  They also wanted the ability to play “split” advertising+branding and have my controller deal with the incoming+outgoing GPIO signals.

Each studio is a “source” and each transmitter (with split playout) is a “destination.  My solution would take RS232 from a studio as they took/released control and when a single “split” command came from the studio, the controller would send commands (GPIO, RS232 or TCP/UDP) to the destination/s currently under that studio’s control.  A series of relays and buffer-amps control the audio side of things.  As the controller was on the broadcaster’s LAN, it could status updates to remote monitor as well as debug logs.

This solution was achieved using an Arduino MEGA, ethernet shield and a 1U enclosure.  Arduino programs (or “sketches”) are written in C++ and offer great flexibility and cost-savings over a dedicated PC.

Image Picker for Radio Studio
Customer wanted to display a variety of logo images on wall-mounted flatscreens in their studios.  The addition of a “Now Playing” text banner was proposed, and my solution was a “Windows” GUI showing a list of available logos – When clicked, the logo would display on each screen.  Unique to each logo was the placement of the now playing information which could be dragged to a position fitting it around the various logo designs.