Cool Play is a very basic Audio Playlist application written expecially for BBC News users. Here you can download the current stable version and review the change log for updates. For more information about the application, please download the latest version and read the help file.
Just before the UK elections in 2001, I was asked if I could write a very simple windows based playout system - nothing fancy, no automation etc, something suitable for a fast changing news programme. There was an urgency to the request. To be honest, this was my first real attempt at user interface design - most of my applications did stuff behind the scenes and so there was no GUI. The application became known as CoolPlay - bit tacky I know but the idea was that it would be a companion to Cool Edit PRO which is used by many journalists to mix and edit WAV files in News.
The application has been used by various departments and many seem to like it - it is still under development. I've just had the application accepted into the BBC desktop which is a first for me so I'm more than a little chuffed! More importantly, it helped Radio 1 Newsbeat during the elections and that was what it was designed to do. I went to watch it in use once and couldn't believe how fast the engineers were at using it. There was me - the programmer - still a bit clumsy at operating it but the engineers were whizzy!!!
As I say, the reward is to know it helped Newsbeat, and it has also being adopted by another department as part of their backup system and evacuation system. What really impressed me was how helpful all the users were with suggestions - nothing outlandish - all very sensible things which didn't occur to me - so, in the case of CoolPlay, it was a case of many people actually created it. It is still being actively developed.
Download by clicking here
126.96.36.199 - insert track dialog now accepts multi select disabled check file stamp on play command option added 188.8.131.52 - added detection of low resolution monitors and bodges the display to fit - problem still with "Remote" panel 184.108.40.206 - fixed access violation at startup if file supplied as command line.. caused by call to caching thread before it had been created started work on alternative shortcut keys for laptops - space causing problems work to be done still need to filter CTRL + ALT + SHIFT - done trying to get to the bottom of the unresponsive bug... cuased by loop - remmed out "tform1.ListViewPlaylistSelectItem" to see if that cures it will wait to see what problems that causes. added left cursor then left cursot to end of tform1.deletetrack to counter effect of above problem with ALT+click playlist a work around done but not nice 220.127.116.11 - bug fixed in laptop keyboard mode where CTRL+S would stop track 18.104.22.168 - removed behaviour that skipped down the list on invalid file (sound card issues) bug that mean that directory picker wouldn't display in setup fixed joystick remote removed serial remote added config now single tabbed dialog refresh now keeps BWF title info outtime now shown (based on local clock) if enabled and width > 800 pix DCART load to play implemented - needs testing clear cache now allows 3 options - yes, no, yes over 24 hours old 22.214.171.124 - remaining and outtime fonts increased in size screen sizing problems on Large Font mode fixed - form.scaled := false; ability to hide the MS in time displays added default playlist path now configurable open playlist now recues to top of list load to play now filters "" strings hour glass cursor added and application.processmessages to make more "responsive" browse DCART started to be added Play button indicates play state - a bit ugly - need user thoughts started to add played indication load to play now allows selecting of system more error handling in the assocaite routine to protect against locked LOCAL MACHINE hives file open initial dirs now remember the last used folder whilst app is running close procedures added more error handling to make sure it closes splash screen code changed as it was sloppy.... minimum main form size now 630 * 500 user default audio and playlist dirs stored in user registry 126.96.36.199 NEVER RELEASED 188.8.131.52 - find files added directory picker changed to windows 2000 version (SHBrowsetofolder) dcart load to play changed to thread version and multi system dcart browser uses threaded objects to work 184.108.40.206 - Find Animations loaded as a resource in the application to prevent small size amination on W2K "Preloaded" changed to "buffered" bug in load playlist fixed which would not recognise no existant playlists properly easter egg added next indication added 220.127.116.11 - NEVER RELEASED 18.104.22.168 - case sensitive find files search fixed added to windows recent documents for playlist open move item using CTRL + up / down duration added to find files form track details now cleared until playing 22.214.171.124 - Empty playlist indications now follow MS display setting Insert playlist now cues to top item MSDOS names expanded to full name Sort directions on dcart browser to make first click more useful Load to play cue / build playlist option refined and relabelled Save playlist as... suggested name reset to playlist name A new text loggin system implemented - triggered by a file being found in the cache dir called "debuglog.dat" 126.96.36.199 - more debugging info saved to log file - trying to catch F9 problem trying to user w2k user association for files 188.8.131.52 - rewrite of core serial controls 184.108.40.206 - access violation on clean registry fixed cfg option to clear played indications on "HOME" key use 220.127.116.11 - trying to get the end preview to slip backward on several presses - think this is now working F10 added to build playlist F9 to Load to play "build playlist" no longer stored in regsitry added an "auto" edge in and out... only available by setting "Do Trim=1" in the "[audio]" section of the ini file 18.104.22.168 - DEVELOPMENTAL JUMP * making data part of a data object rather than substrings * caching system update filename mechanism changed * added grouping and reload to config but not implemented yet 22.214.171.124 -* FIX TO AUDIO CARD * removed "pause(false)" from procedure tform1.playtrack; * added the backend to seque / grouping 126.96.36.199 -* Adding the file browser * fixed a display issue with BWF audio that is not the DCART original - TVC act * added close query. * bug fixed on open playlist if user has file extension hidden 188.8.131.52 - MULTI LANGUAGE DIALOG SUPPORT STARTED TO BE ADDED but awaiting Delphi 7 for proper support (currently Delphi 5) * now reads dialog / form labels from file translation.xml in app dir - if not found then uses English * fixed bug which meant dropped playlists lost grouping * reload playlist implemented 184.108.40.206 - reload playlist refined * mutex used to inform user that a previous version is running * added total duration * added three more user settings which override system ones (file browse / fiile find / disable DCART) 220.127.116.11 - new internal status variable added form1.iPlayerState * pause on preload and mmslider on preload ignored * some tweaking to the browser interface 18.104.22.168 - updated splasher * find files dialog now allows browse to search root folder * added ability to turn off the display of BWF title info through config 22.214.171.124 - 22.05.2003 * changed default button on close query with no playlist save required to mbno * fixed load to play which would recurse all folders - only should recurse first level * added open playlist / insert playlist using load to play interface and thread. 126.96.36.199 - 24.05.2003 * new playlist load to play functionality refined... playlists with a name > 5 chars rejected * fixed a "cannot focus on an invisible control" bug in the options (cache tab wasn't visible at the time) * application now starts maximised by default (can be controlled in ini file [System] Start Maximized=1 ) * load to play playlist refined to add the "windows browser" button functionality 188.8.131.52 - 30.05.2003 * fixed spelling mistake (segue) * agreed dcart load to play playlists new form * splash screen change from stretch true to stretch false 184.108.40.206 - 27.06.2003 * fixed splash screen missing right hand border * added the ability to choose the output device * added the emergency server path substitution (up to 10 strings) 220.127.116.11 - 19.07.2003 //change of versioning schema to the correct schema * browser window if selected folder is deleted will warn user * added f5 action on browser dialog - refreshfolderlist * added button to disconnect auto reload of upadted playlist (short key = CTRL+L) * version info now dynamically shown 18.104.22.168 - 02.09.2003 * fixed bug whereby pause would reset "linked" button - dupliate groupindex property on tspeedbutton * if a playlist is loaded using F7 to an empty playlist, then the logic is as "open" rather than "insert" playlist * BROWSER SCREEN - F5 = repopulate files, SHIFT + F5 = refresh folder list as well * Web update added (HELP | CHECK FOR UPDATE!) has to be enable through coolplay.ini file * adding quick record functionality * cfg done * remote added * quick record editor parameter added CTRL+ALT+Q * purge on exit (7 day move to recycle bin logic *.wav, *.pk) * max recording time 22.214.171.124 - 04.09.2003 * quick rec auto stop worked on * CTRL + ALT + Q now works when not recording * quick rec purge now set to 2 days * Segue can be assigned to SHIFT + F4 in cfg 126.96.36.199 - 05.09.2003 * quick rec stop and edit button (razor icon) added 188.8.131.52 - 09.09.2003 * can configure quick record editor to be read from registry for cep1, cep2 * quick record purge can now be configured to be delete rather than recycle * quick record will force the reocrd directory * fixed a "cannot focus on an invisible control" bug in the options AGAIN (tabsheet index was changed by general 2) 184.108.40.206 - 19.09.2003 - changes to incorporate World Service's requirements for Quick Record * quick rec stop and edit button (razor icon) changed to JtArrowButton * Stop recording and insert into playlist added * early stages of quick rec simplex card * remaining record time added * very rudimentary vu meter added * default settings now 48K stereo * now moved writing of data to my own on buffer event to enable bext chunk writing * quick rec simplex mode added * TODO sort out the BWF timeref hi and lo *****TODO****** 220.127.116.11 - 19.09.2003 * get file details now invalidates PCM files where the bit resolution is not 8 or 16 bits * quick rec file template - can now configure format of the %t and %d patrameters using the inifile settings [Quick Record] Filename Template=QuickRec_%d_%t Date Template=yyyy-mm-dd Time Template=hh-nn-ss [note uses borland datetimeformat strings - cannot contain invalid filename charatcers like \ : and up to configuration user to get that one right - app does not filter] * quick rec copy to server now implement in seperate thread * sorted the bwf time ref issue * reasonably certaing I've knocked the invalid floating point operation in vu meters... (trunc((log10(iMax1 / 3277)) * 100) was 3276 18.104.22.168 - 22.09.2003 * fixed bug in function tform1.getfiledetailsFORbackgroundplaylist (sFilename : string) : tAudioDetails; * configurable quick rec folder purge days * ability to disable do it button via cfg 22.214.171.124 - 29.09.2003 * load to play track functionality changed so that if a match is found, it will continue looking in the current folder until all files are scanned - if another match is found, if it is newer it will be used instead - this is to fix the repliweb multiple files as old files are locked...hmmmmm * added Adobe Audition 1.0 to editor list for Quick Rec HKEY_CURRENT_USER\Software\Adobe\Audition\1.0\State\Location 126.96.36.199 - 15.10.2003 * more debugging code added to file details / cache for biglog.general log * not found now displayed in playlist * modified now disables the link button and changes the glyph * increased size of "recorded duration" font * Short keys altered for quick rec do it button CTRL+ALT+E = edit CTRL+ALT+I = insert CTRL+ALT+C = copy to audio server * quick rec pause added: recorded count now held in quickrec.cDataWritten resizing / logic of display quick rec buttons now in TForm1.ResizeQuickRec; pause short cut key - CTRL+ALT+P * webupdate checker moved to about screen 188.8.131.52 - 16.10.2003 * more debugging code added to reading user hives * more combo.index error catching written in * contensious one this - quick rec pause turns vu blue to warn users 184.108.40.206 - 10.11.2003 * vu meter peak find rewritten for protection (from big rot code) * width of Quick Rec "Do It" button arrow drop down increased - Julie * HMTL status file first stage added * procedure tform1.onstop; now test for lLastPlayedItm=nil * tform1.clearplaylist sets lLastPlayedItm=nil 220.127.116.11 - 16.12.2003 * loads more exception handling added and some tidying up * can now disable the creation of each form via the ini file - for debug only!!! * new config value [DCART] Max playlist filename length=5 (default = 5) Enables longer length playlist names, same logic applies of only exact matches returned * auto play mode added - this will play the entire contents automatically (no grouping... needed), additionally it will segue from the last item to the first. Updating will be performed if enabled * fixed repeat of last sound card in config (zero based array) - 18.104.22.168 - 28.04.2004 * added real time display for Zagreb * adjusted form8 layout to make it render better under XP themes - 22.214.171.124 - 30.04.2004 * removed "minimise" on form 2 / form 8 * added an option to attempt to keep focus - very confusing but might be useful! - 126.96.36.199 - 31.04.2004 * quick record stop and edit will minimise if stay on top enabled * slightly moved controls on form1 to make layout more pleasing - 188.8.131.52 - 20.07.2004 * bug in dcart browser duration (when not full header read) [was * 2 correct value] - fixed * each "DCART" system may now be declared a VCS export (via cfg dialog) - this chnages the formatting rules * you now can define the "Default" audio format for each "VCS / DCART" systems via the cfg dialog * have rewritten the BWF header readign module to cope better with no BWF chunk - 184.108.40.206 - 22.07.2004 * more issues with VCS raised - it does not reliably update BWF headers.. * config changed for DCART sys so that read BWF is now specific to system rather than global * some changes to the BWF reading function made again to accomodate the VCS export material - 220.127.116.11 - 15.04.2006 * adding .s48 support * added rm / mpeg to file browse (no durations added) * added fix for splats at top I hope [audio] RadioMan Fix=1 - 18.104.22.168 - 15.04.2006 * added mp2, mp3, .s48 support to find form * changed duration from '?' to '-' - 22.214.171.124 - 25.05.2006
* added ext m3u format support with titles - 126.96.36.199 - 28.03.2007 * adding Digigram Vx222v2 remote via GPIO * adding support for WM remote control [ WM_COOLPLAY_REMOTE_MESSAGE := RegisterWindowMessage('bbc cool play remote interface message'); ] wParam = command (longworD 0-11), lParam = coolplay instace (longword to allow more than one instance control, default = 1) - 188.8.131.52 - 02.10.2007 * adding support for PSIO radioman digital input cards * stopped close query on session end and playlist not changed - 184.108.40.206 - 09.12.2007 * added support for Belkin USB number keypad - 220.127.116.11 - 26.02.2008 * msi release build - 18.104.22.168 - 03.03.2008 * changed default position for splash and form 1 from desktop to screen centre - 22.214.171.124 - 21.09.2010 * added velleman P8055 USB interface remote control - 126.96.36.199 - 25.05.2013 * added ability to edit title bar name to allow identificaiton of different instances (BBC WS)
Borland Delphi - an excellent programming language | MySQL - forget MS and their bloated databases - go Free!