About
Broadcasters
FAQ
Free Trial
Purchase
Development
Release/Bug Lists
Discussion Forum
Documentation
OAS Audio API

OAS Playout Development

... new features planned for Playout

Current State of play...

OAS Playout V3.4 is now released - retail/licensed versions & free demo copies are available. You can read about the current product & features here.

The free demo version is available for download here.

Pricing, purchasing & licensing options are here.

Already OAS Playout has been deployed successfully on a number of RSLs and community stations over 2002-08 with very positive feedback on all fronts. Watch this space for news on latest updates & progress.

Latest Updates/News....

28/06/09: It does seem to be that I will be perpetually fated on releasing a new major version of Playout, that no matter how much testing I do before hand, within days of the release I find something nasty with it. The release of v3.4 continues this trend nicely with the wrong default database template in the installer and something nasty in Playout Manager which affects multi-core processors. Fortunatly both can be addressed with an add on patch but it is annoying. Unfortunatly as software becomes more complex, the likelihood of this sort of thing increases.

The "lite" version is also due soon but before that I'm working on overhauling most of the about pages which are beginning to look a bit out of date.

18/06/09: The reason I started work on Playout back in 2001 was because of my interest and enjoyment of radio and a good part of that being local commercial radio. Therefore I would be remiss if I didn't mention that the final part of Global Radio's transformation of most of it's local radio into Heart FM completes this weekend with the demise of two of the local stations which formed much of my early listening experiences - Southern FM (nee Southern Sound) and Invicta FM. After this Sunday, those station names will be consigned to history as they become Heart Sussex and Heart Kent. Which is quite frankly a real tragedy although, it is to be honest really another nail in the coffin for these stations since most of the "heart" of them had already been ripped out post the GWR/Capital merger took away much of the local programming. They are now part of a set of bland, carbon copies of many stations across England. I hope it all goes horribly wrong for them. Hopefully those (few) remaining independents will really gain from this, the ubiquitous Jack FM in Oxford has made the headlines several times putting the boot in and Juice Brighton who I frequently listen to these days on the Sussex DAB mux have stepped up a notch promoting their "made in Brighton" slogan.... Some of my memorable bits from commercial radio are still on my old website - here.

10/06/09: Oddly enough, stuff *has* been happening with a view to putting out a new release - I also plan to do a bit of a site overhaul shortly after, it's just fitting the time in. I did a weekend streaming audio for the Hastings Rock people towards the back end of May using my latest build which highlighted a few minor issues plus I had some good ideas on enhancements which I thought worth rolling in before the new release. Since I'm also trying to put out the first release of "Playout Lite" as well (more exact details soon!), I've been working on all the help & documentation updates to support that as well. So it's happening, just slower than I'd like.....

29/05/09: Off topic: The anti-freeze petition has been responded to by our government, who have aptly demonstrated a profound ability to COMPLETLY MISS THE POINT. Their decision to take no action whatsover is based on the premise that antifreeze is clearly labelled where in reality the petition's aims were to address those life forms that CAN'T READ LABELS ie. animals and small children. Regardless of how careful anyone is, accidents can and will happen eg. leaking radiators on cars so the aim was to make this lethal stuff unpaletable. However thanks to everyone who posted on this via this site, futile though it turned out to be.

30/04/09: Normally at this time I'd be running around putting the final touch to this year's Hastings Rock RSL however with the current financial woes, the committee decided back in February that it was all just a bit too risky to attempt to put on one this year. A side effect of that is that I've not been pulling out the stops to get a new "major" release out in time for the broadcast - something I normally try and do so it can be given a good shakedown before being made available to the world at large. The bonus is of course without being involved in the broadcast, I can devote more time to purely Playout related matters.

At the moment, I'm planning on putting in a couple more minor changes and aim to have a new version out, hopefully by the end of May. The trials of Request Manager have been going well at Unity 101 (it would've been good to try that out on Hastings Rock this year but wasn't to be) and they aim to start using it full time with their listeners in the next few weeks, all being well that too will be available with the new release. In parallel with all that I'm working on a new variant of cut down variant of Playout. The aim is to be similar to the freeware version (ie. no database meaning no Playout Manager) but with a little more intelligence built in - ie. supporting tagging, cue points and rudimentary playlists. This variant would be more targetted towards mobile discos/djs and possible retail establishements - shops etc. The idea being a lot more simpler to use and manage and be more suited to those kind of environments.

10/03/09: We've just started trialing the first Beta releases of "OAS Request Manager" which will (hopefully) become a new add on to Playout forming the premise of Automated Listener Requests. As I briefly outlined in November this is a concept designed to combine the idea of during periods of automation (ie. unattended operation), listeners can send in requests which are then automatically included for playback by the main Playout application. This isn't a new concept - we've been doing it for a while on Hastings Rock and I have a write up on it along with some sample server side scripts here. The key drawback with this though is the technical know how required to set up a web based database engine not to mention the security implications. Request Manager works slightly differently, instead the user sends in their request and the software attempts to find the closest match in the database, taking into account spelling and variations in the track title etc. Originally I intended this to compliment the original web based search engine since it would allow requests to be sent in via SMS texts - over the mobile phone network however this could also equally handle requests sent in via email or via a simple web based form. Obviously this approach is a bit more hit and miss than a direct search mechanism but it could provide a much simpler approach to this concept.

22/02/09: There has been a smattering of updates across this site over the past few days, notably to add a 'Latest News' section to the front page, update the freeware release to the latest version and update the Future Playout page... The latter of which contains a fair hint on the current work I've been doing (now the kitchen building is finally finished!). Actually it's really wrapping up the whole text based request system which I started work on back in November, which was rudely interruped by my migration to Window Vista and the restyling of Playout (which also gets a mention on the Future Playout pages...). Thus I've been putting the help together and generally packaging it up ready for some proper trials.

30/01/09: Got a bit carried away with some of the interesting stuff you can do with the new look Vista controls to the point of... well click here for a sneak preview of what the next release of Playout will look like. And for those traditionalists, it'll stick look the same as ever if you opt for 'Windows Classic' display settings.

04/01/09: First up, happy new year everyone. I was on FTL over new year (as was Jim & co), which proved a good opportunity to see how Playout behaves under Windows Vista. Overall everything works as well as it did under Win2k (my old OS 'of choice') however it did have an annoying habit of playing a 'beep' out the PC speaker everytime you clicked on a track to load, despite disabling all sound effects (& muting the speaker). It was whilst I was investigating this (a known issue in Vista you'll all be pleased to know) that I came across "themed" controls and how to make your application look & feel like it was written for Vista (actually these came about in XP but it's been taken further in Vista) - it's not too difficult either but does need some minor code mods to make sure everything looks quite right. One of the annoying things I'm finding though - not just on this but generally - is Microsoft's tendency towards making everything appear in white. It's been getting steadily worse, where all the controls seem to be in some shade of white such that you can barely make out where the controls are. Quite frankly, Playout Manager looks pretty apalling with the "default" Vista colour scheme. I tend to change the colours slightly - mostly to grey backgrounds (the screenshots on this site are testiment to this) because it all gives me a headache after a while but Vista seems to (again) make life difficult in that (particularly with the themed controls), the "whiteness" seems to leach through. Here's an example - the top part of the image is after I change the background to grey yet various aspects of the controls retain their 'whiteness'.

The bottom image is the default Vista scheme - you can barely make out the border of the Title edit control or the selection bar..... So I need to figure out some method of making the controls look half decent again, regardless of the OS in use.

21/12/08: It's been a busy few weeks, despite me not writing anything useful here about it... Firstly, I've finally sucumbed and bought a new PC, a fairly rare event because normally I can't really justify it since I don't really need loads more procesing power, memory etc. for what I use it for - mostly developing Playout. However the old Athlon has been starting to slow down chronically of late (I think it's the virus checker which floors it) and some of the fans have been making rather nasty noises. So I've been slowly migrating everything across - which has proven tedious at times since I have some old but still perfectly useful software I like to use. This is also a jump into the wonderful world of Windows Vista, which having figured out how to turn a lot of the annoying nags off is proving reasonably painless, not so my attempt to get my trusty parallel port scanner working.

Playout itself seems fine on the new OS, there is a funny with the 1280x1024 display mode which causes it not to display quite correctly with the "new" desktop schemes but that has been easily fixed. Given a bit more time I'll have a more positive feel that there is nothing else lurking in the woodwork...

Before all this lot kicked off though, I made some reasonable headway with the SMS/request pattern matching I mentioned last week. The application is just about there and I've run a few song titles though it, thanks to some volunteers who sent me some test tracks. Thus far it isn't too bad but I'm still finding the odd track which I'd expect to match being discarded so still some work to go before I'm totally happy with it.

14/11/08: I've made an initial start at an optional add on to Playout which is to support an automated request system much like the web based system we used for Hastings Rock but using SMS texts instead. The actual mechanics of how the SMS message reaches Playout isn't something I'm overly bothered about - for starters I'm going to include a Simple MAPI client which would allow the software to pick them up via MS-Outlook Express (or similar ilk) assuming that an SMS to Email gateway is implemented elsewhere. The more challenging bit however is in matching up the various phrasing (and not to mention spelling!) of track titles which almost certainly won't match line for line anything in the Playout database. The starting point for this is part of the music import engine I wrote in Playout Manager several years ago which looks for similar tracks in the database - ignoring grammer, certain small words ['and', 'the' is' etc.] and allowing a certain tolerance in bad spelling. Quite how well this will work in practice though I think will only come about after it gets deployed on a real station which might well be Hastings Rock next year or my friends at Unity101 have also expressed an interest.

17/10/08: OAS Playout v3.3 is released today. This is mostly a Playout Manager enhancement rolling in the multi-cpu optimisations for voicetracking and the new tagging engine however it does mark a milestone in that from this version onwards it doesn't work with Windows 98/ME. This is principally due to the version of Visual Studio C++ Express I used (2008) to build the taglib library which precludes '98 support but it's probably overdue and will mean I have less to things to worry about than testing on fairly obsolete operating systems.

On another note, it's nearly a year that I lost my cat due to antifreeze poisoning and started promoting the petition to change the contents of the evil stuff - to date there is 1000+ signatures on there so thanks, especially if you found your way there through this site. The deadline is early December so if you've not done so or know some more folk who could add their name then now's the time. Hopefully Mr. Brown can find a spare 5 minutes in the midst of picking up what's left of the economy to take note.

04/10/08: It has been quite active this past week on the Playout front. Jim has been very kindly breaking the current alpha release by trying to put together a voicetracked programme for me. He's flung a few issues my way but most of them are due to either new code (which is what the testing is all about) or funnies on the MySQL front. However he did throw back something odd with the ASIO interface, specifically when playing non-44khz sampled tracks, in this mode it needs to go through a software resampling engine - I used the LGPL libresample library and in the process made a rather stupid assumption that it took in stereo samples, when in fact it's only mono. So I just needed to break out the audio into seperate left/right channels and feed it in. What was a bit stranger though is that the (in this case) upsampled data appeared to overflow the sample limits so I had to include clamp checks on the finished output to handle this. Very strange.

In parallel with all this is the re-occurance of the "randomness" of one of my Playlist generators. Those of you with good memories may remember me having a drone on about this one a couple of years ago. The feedback again was the frequency in which certain tracks re-occur in their auto generated playlists. So it started me off again on the trail of looking at random number generators and this time pasting loads of test run data into Excel spreadsheets. In the process, I added in another LGPL library to implement the rather lovely entitled Mersenne Twist Pseudorandom Number Generator. which provides the option of saving/restoring the random seed state. Unfortunatly as I said back then I'm no mathematician so it can be a little tricky for me to figure out if this has any significant impact or if the stats are in fact correct but I think I've managed to track it down to the sheer number of tracks with the same Genre in the supporting rulelist which 'skews' the final result quite badly. It certainly looks better if I adjust this rule.... and as I said last time, it'll take a while for them to see if they are fully happy with it...

23/09/08: I threw together another voicetrack show last week, nothing too exciting but more just as a confidence check that everything still worked, which it pretty much did apart from a recurring random crash (which I've seen very rarely) rearing it's ugly head during the preparing of it. So far I've had no real clue on what causes it however it always manifests itself in the same way so I'm sure it's the same thing each time and despite various code checks I've no idea - which is all very frustrating.... However this time I managed to persuade the debugger to attach to the dieing process and gleaned some clue as to what it was doing. If it is what I think then it's keeling over in the audio core due to a very specific set of conditions arising - possible but a little too improbable I feel. A fix has gone in but since it's so infrequent it'll be difficult to know for sure in the short term if its worked.....

12/09/08: Well we're all still here after Wednesday shenanigans although since the particle bashing's not even started yet it was all a bit of a let down. This means there's been nothing to stop me updating the help, finishing the installer and rolling out a new release - at least for a few people to test initially. I'm fairly happy with the new tagging importer considering the amount of music that has been flung at it but I'm going to put together a voicetrack programme on a dual CPU machine to make sure all the threading work I did earlier in the year is fully holding up.

05/09/08: The prevailing weather for August this year seems to be characterised by the words "exceptionally dull and wet" according to the BBC and shows no signs of abating and if I hadn't been spending much of my time kitchen fitting (still ongoing) we'd probably be up to Playout v9 by now. Its all very depressing... However this past week or so has seen a bit of activity - a flying visit to Luton helped track down a buffer overrun which was causing the new importers to fall over and I've spent some time today enhancing the search capabilities inside Playout Manager (customer request) which in the process has also fixed a very old bug in the Artist search engine (its listed as issue #5 here) so all good stuff. The help files need a reasonable bit of rejigging but hopefully a new v3.3 version will soon be forthcoming.

01/08/08: A few things have been happening when I'm not embroiled in kitchen fitting. Mid way last month I finished integrating taglib into Playout Manager along with a general overhaul of the whole tagging engine, notably tag writeback capability for all of the supported audio formats within Playout. All the audio I've thrown at it (including the entire Hastings Rock disk) has been parsed successfully however Jim has had a few issues which may not get resolved till I find my way in his part of the world again (later this month). Not that it's particularly Playout related but I've also been progressing a job I started last year which was to upgrade my Linux kernel from 2.4.x to a 2.6.x flavour. There's been a few sticking points but mostly its all now working though I've still yet to undertstand how udev fits fully into things.

21/06/08: I mentioned at the beginning of last year about replacing the pretty much non-maintained id3lib ID3 tagging library with something more supportable, in this case taglib provided a Win32 port became available. Well as of February this year, it is so I've made a start with attempting to get the grips with it - also with a view of providing a much cleaner interface across all the audio formats Playout now supports. I've just about put together a routine to read the v2 tags I want but it's been hard going. Like id3lib, taglib is written in C++ and whilst I'm reasonable okay with the basics, this is seriously hard core C++ so it's been a bit of a struggle to figure out the syntax on doing what I want to do. The documentation is all there & very good but a few examples wouldn't go a miss for us old 'C' programmers.

09/06/08: A bit of a tedious week just passed on improving the performance of the voicetrack editor - as I mentioned last time this would (on dual core processors) enable the generation of the 2+ waveforms to be calculated in parallel to do this I've had to make the voicetrack editor fully thread safe which has had additional knock on effects reverberating down to the audio core. It took some time to track down but the initial tests look promising, showing a halving of the update time when running on a dual core architecture (from 15s on a 2minute 'view' on my Athlon 1.4 to 3s on a stupidly overpowered 4 CPU Xeon). Then came the real fun bit as to fully realise this I needed to make the low level MP3 library (a port of mpg123 to Win32 done around 2001) thread safe. The port had a few bodges in it anyway - an assortment of global variables which I've moved into TLS but it took a while to track down the static array stuck in the middle of the layer3 decoder - to be honest it was probably only static to avoid eating up 16k odd of stack space. So its even more of a mess now I've been at it. Quite when this makes it into a release, I'm not sure at this point, it's a bit of a fundamental change that needs a *lot* more testing.

Speaking of the audio core, whilst on my recent jaunt to Luton we didn't get round to looking at calibrating the audio levels of the DirectX & ASIO output modules, I did spent a cheerful hour or so this Saturday trying out Jim's suggestions - which in essence involved playing a sine wave through a volume rejigged formula with the output stage connection to an AC multimeter. As it turns out, the ASIO volume levels are calculated correctly, its the DX conversion from a percentage to dBs that was in error - so in future they will both work the same.

01/06/08: I've been having a think & a play on and off about improving the performance of the voicetrack segue editor. Basically the problem is that whenever the view is scrolled, the waveform is regenerated from the source audio by playing back the relevant files as fast as possible. However the architecture of the audio core isn't really optimised to do this quickly (being more designed as a realtime player) so it can take a good few seconds (up to 15 on my 1.4Ghz Athlon for a 2 minute 'view') which isn't ideal. Short of a radical redesign I can't think of anything obvious to do to alleviate this (and not even sure what this redesign would look like). I know packages like Cool Edit Pro scan the file on import and create a 'peak level' (.pk) file which is an option but this would then incur a fairly large delay on the start of potentially every edit session.

So my initial attempts are to try and optimise what we have and spurred on by the arrival of a quad core Xeon processor based PC on my desk at work I've done a bit of work to try and parallel up the decoding operations. Naturally this will only offer any real benefit on dual core processors or better but the future is steadily marching in that direction. The waveform editor has needed a bit of rework as it wasn't thread safe but I've managed to do the necessary work over the past week and will be spending some time next week seeing how it performs.

10/05/08: Been a bit of a tetchy few weeks getting ready for the usual Hastings Rock broadcast, nothing terminal has arisen mind but there has been an assortment of steady annoyances coming along - it all started when it took the best part of 2 weeks to get the broadband sorted (its normally only a matter of days). However they're off and running now and aside from a power cut on day 2 things seem to be going steadily include (the webcam even looks half decent now someone's stuck a box round it to stop it saturating). I'm off to sunny Luton next weekend and quite possibly one of the outcomes of this will be to have sorted out the logarthmic algorithm for the Playout's volume control for both the ASIO & DirectX output variants. Which will be nice....

13/04/08: I seem to be perpetually in arears at writing this page right now, again been a busy few weeks mostly leading into the Hastings Rock broadcast again. Aside from rolling out a slightly newer version of Playout, it's mostly been doing the usual prep of getting all the machines, servers etc. ready. Last weekend I spent a fair amount of time putting together some PHP server side pages to enable the guys to record their shows at a given time from our internet stream then download them later - it's basically a web front end onto the Cron daemon.

Some of you may remember my entry last year on the subject of erratic hard drive detection issues on our HRock (ancient) Linux server and my conclusion being down to the 40W IDE cable not being connected correctly to support UDMA. Well that wasn't unfortunatly the complete story since the problem persisted but I've been, well, ignoring it. I always had this nagging feeling having read somewhere that it's a joint responsible of the OS AND the BIOS to get UDMA working properly and we've always had the problem that the machine is so old it hangs on auto-detecting drives that are >32GB. My workaround has been to change the drive setting to 'None' in the BIOS and it's pretty much worked but its not been ideal. So I've been going round the loop again and in a last ditch effort attempted to see if there was a newer BIOS around (not very likely since the m/board is circa 1998) not from the manufacturer no but I was pleasantly surprised to find this a site *Full* of patched Award BIOS's (including mine) specifically to alleviate this problem. Well done them.

Finally for now, this weekend I've been doing the annual test of the kit for Hastings Rock which basically involves setting Playout into auto-sequence mode and streaming it out for the comittee to listen to. This year, instead of doing the usual clustering of Shoutcast servers, we're forking out a very reasonable £6/month to TidyHosts UK for streaming. All very easy to setup & thus far is working marvellously.

31/03/08: It's been a busy few weeks, my parents 40th wedding anniversary party on Saturday and & my mate Jim somehow managed to wangle himself on the guest list. In amongst the usual abuse then was a comment that I seem to use this page mostly to go on about him breaking Playout - a fact I strenuously deny although I won't be helping my cause with the following paragragh....

....spent a few hours last week investigating some import issues Jim was having with his MySQL Playout database. In quick summary, this is an alternative (experiemental!) database engine for hosting Playout and offers a number of additional features (such as the web based listener request system we use for Hastings Rock). Anyway his problem seemed to stem from the fact that MySQL was treating similar artists with certain non-english characeter as identical whereas Playout thought they were different (Maxïmo Park vs Maximo Park for example [note the accented ï]). In turns out it's all to do with collation (the way character sets are compared) and the default MySQL collation utilises something called "latin_swedish" where ï and i are treated as identical. I must confess I'm not sure why this is so since a basic case insensitive compare (latin1_general_ci) would seem to be more appropriate for most people. Still it's fairly easy to change when the database is initially created (not so on an existing one mind) and it's something else I've learnt about....

An email on the Hastings Rock committee group startled to the fact that it being nearly April, is only really a month till they are on air again. It's been a while since I've done anything to Playout initiated by the station but during a recent meeting some comments provoked me into including a rather nifty feature, when picking a track to load you can bring up a quick history on when it was last played - useful for them to ensure the same old tracks that are always requested don't get played too often.

12/03/08: Looks very much like the v3.21 release will be rapidly consigned to the dusty bin, over the last week or so found yet more bugs which got in - rather embarassingly the button wall change I put into v3.09 then dropped in v3.11 had wangled its way back in (this was to "fire" the buttons on a mouse press [normal Windows behaviour], rather than release which may be more intuative to those uncustomed to Windows) . Unfortunatly work on the v3.2x trunk was already just underway by the time this update rolled out and it didn't get flowed back in. It's made more unfortunate by the fact that considering it was a failed experiement, to be consigned into the mists of time, the folk at Unity 101 have probably got used to it working that way. So, taking Jim's advice I've finally fixed the bug with it and will make it a configuration option in all new releases - probably migrating it's way into a profile option in the future.

Very quickly then, our last Image broadcast went well with the fine folk at FTL, no real issues of note with Playout aside from a slight stall on one of my players - it was having to do a downsample on the track in question so there may be something funny there. Jim managed to put Playout Manager in a spin importing some music but thats more than likely his MySQL link or some dodgy track - I will be investigating... No the only issues were with the gear external to Playout - a combination of my ailing mixer and Jim's compressor created some rather nasty distortion during his show.

02/03/08: It's age old problem really, given any complex piece of software, start changing significant bits of it and you stand a good chance of breaking things. Unfortunately (as I previously mentioned), the User Profiles feature required a significant rewrite of the way audio categories and playlists were managed - both fairly key features to Playout. So despite significant testing by me and Jim had a bash with it several weeks ago on FTL a simple but annoying bug slipped through which caused a semi-random playlist to be selected when a 'Load' button is pressed. That coupled with shipping a debug version of a DLL rather mucks up the v3.21 release. Not a lot can be done really, if I had hoards of beta testers it probably wouldn't have happened, sadly I don't.

On a more positive note we will definately be taking to the airwaves in an ImageFM special next Sunday (9th March). Feel free to drop by for alternative radio....

26/02/08: There's nothing like rolling out a new release of software and discovering 2 days later an annoying little buggette in it.....

25/02/08: OAS Playout v3.21 is now released. This completes (hopefully!) the long awaited User Profiles feature along with a few other additions. The next major update will be on the voicetrack segue editor - more on the Future Developments page. In the meantime, Jim (with a resurrected studio) & myself are planning another ImageFM sworey(SP) in the near future, tentatively planned for 9th March but keep an eye on the FTL events board (hopefully they'll let us back on...).

02/02/08: Whilst perusing Wikipedia I noticed the other day, that Microsoft have effectively obsoleted the Jet database engine (which powers MS-Access the database engine which ships with Playout) in favour of SQL Server. Notably for them they also provide a free implementation of SQL Server (currently SQL Server Express 2005) so I've downloaded it to have a play. At present I can't see the Playout migrating that way because it is still probably going to be easier to ship the database as a file (the MS-Access database) rather than have to deploy something like a cut down embedded version of SQL Server. However it may prove to be not that difficult to do and there are advantages particularly if stations want to deploy the database on a central server. I know of a couple which have had issues, notably with file permissions on things like Windows Server and in terms of multi-user networked databases, Access isn't the best or most reliable.

26/01/08: Technically OAS Playout v3.2 is released (last weekend) however its more going out on 'evaluation' to one station who were particularly after some of the new features. However it's almost certainly going to be upissued because they've already requested a slight change and in the meantime I've found a few niggling issues which I want to address.

12/01/08: Yesterday proved to be quite a successful day as finally managed to track down a niggling little bug which I touched upon nigh on 18 months ago which due to a corrupted configuration file, resulted in a fatal program crash when running an automated playlist. I remember spending quite a bit of time then trying to track it down - unsuccessfully as it turns out, however it cropping up with another customer this past week prompted me to re-double my efforts. I've always been somewhat proud on how robust Playout itself has been so whilst this *appeared* to be a one off incident after a clean install there was always the worry it could crop up again. So, taking advantage of Jim's recent need to build a new PC following his studio "leakage", and a fresh install of Playout asked him to try and replicate it (since I couldn't). Which he did (much to my surprise) and after a talk through what exact steps he performed managed to track it down to some subtle differences in the development environment settings for Playout & Playout Manager. I think I probably changed Playout's settings to closer mimic those used in Microsoft's Visual C over Borland (the former being more prevelant these days) but it would've been back in the very early days (7 years ago wow!). Anyhow, cheers as ever mate for your assistance.

30/12/07: Nothing too taxing this year, spent a little time sorting out some of the 64 bit arithmetic inside the OAS Audio Core. My trusty Borland compiler is getting a little long in the tooth these days and whilst it just about does everything I need it to, it's lacking someone in having support for 64bit integer data types. Signficantly more of the new audio formats I'm including support for (WMA, M4a, Flac etc.) all are returning information in 64 bit integers. Thus far I've fudged things into floating point then back again and not worried about it too much however I thought I'd try and do things a bit cleaner and had a trawl on the 'net for some 64-bit math routines (the basic add,sub, mul etc.). Nothing that forthcoming in terms of a complete library however I did find some assembler on a few newsgroups which I managed to add 'C' style code around (and put here as well). That said, I don't think Playout will ever really have to deal with audio that long as to ever exercise the upper 32 bits but you never know....(WAV64 anyone?) Happy new year anyway folks, see you all on t'other side.

18/12/07: Final part of the 3.2 release is just about complete now with the addition of some menu navigation shortcuts for the Voicetrack Segue Editor. This should hopefully speed up the prep time for these shows but I still think in future it may be necessary to improve the redraw rate of the waveforms. There are some help file updates needed but I intend to roll the first beta out over the next week - just in time for the Christmas break.

12/12/07: See my update below on a petition (Antifreeze Kills) to force the manufacturers of anti-freeze to contain chemicals which are less palatable to animals and children.

27/11/07: Still in a process of keeping busy but with non-too taxing stuff, added quite possibly one of the more pointless "features" over the weekend, a track lister to update Windows Messenger "Now Playing" feature with information from Playout. Yep it's gimicky but as Jim has pointed out - dj's love that sort of thing.

23/11/07: Mostly in an effort to stop moping around the house and try and get on with things, I had another look this past weekend at the flac codec I mentioned earlier this year - basically its yet another compressed audio format but with the difference that it is lossless - in essence meaning it's identical to the original CD quality unlike MP3 et al which inherently throws data away to achieve compression. After the usual state of being confused, un-confused then back to confused again (documentation always seems to miss key things I find), I have managed to integrate it into Playout's audio core. What did leap out though, is this is the first compressed format that I noticed has a sample size with greater precision than 16 bits (theoretical 32, currently 24). Quite why is beyond me (although I'm sure serious hi-fi enthusiasts will put me right) and my initial versions only accepted the normal 16-bit flavour however I have come across a couple of online record companies which offer downloads at this sort of rate (and rates of 80khz to boot) so I've included code to handle this now... just in case.

09/11/07: Yesterday I had to put my little tabby cat to sleep in the culmination of a rough week here after he drank anti-freeze sometime early last week resulting in both kidneys failing. If you want to see just how evil that stuff is do a google on "antifreeze cats" and follow the links. Its made worse than unless you find out they've done it within an hour or so there is nothing that can be done.

He's been with me for the last 10 years and a fair bit of the work I've put into Playout has been with him sat dribbling on my lap or sometimes in the keyboard and I'll miss his hurtling himself at me or the desk in a demand for attention whilst I'm trying to code up some intricate bit of logic. Goodbye Jazz my friend, it's been fun.

Antifreeze Kills is a petition to persuade the UK Government to enforce the manufacturers of engine coolant and antifreeze to contain a bittering agent, to render the coolant and antifreeze unpalatable to reduce the number of poisonings in children and animals. The petition has been submitted as a result of another tragic loss (ironically not long after mine), the author's have also created a website dedicated to this cause at www.antifreezekills.co.uk/

Read the government's response - and mine.

25/10/07: Sizeable chunks of last weekend went into properly integrating ASIO driver support into Playout, despite a few (expected) issues down to stopping/starting the driver on the fly, that is now completed as is the new User Profiles feature (at long last). Next job on the list is re-visting the voicetrack editor - there are a couple of additional features I want to add, notably the ability to adjust a track's start cue point away from it's default plus there are a couple of comments raised by users about the time it takes to navigate around the editor. It's a difficult one that because I have to generate waveforms by decoding the MP3 data in realtime which causes a noticable pause everytime you scroll along the page - obviously the larger time view you have the longer it takes which is why I limit the minimum zoom to a 30s view. My thinking is that for the time being introduce a navigation menu which allows quick jumps to say the start/end of tracks (& segues) and postpone coming up with a more elaborate solution for a future date.

14/10/07: Managed to put in a fair few hours this weekend on two fronts - firstly the user profiles is moving along steadily, with the core interface changes in & tested I've been working on the profiles themselves. It's mostly adapting code I wrote 9 months ago but remembering what it all did is the challenging part. Secondly, the next job on the list is to make the ASIO driver integrated into Playout proper, one of the existing issues with it though is that in it's 'release' form its limited to only handling 44khz sample rates so I need some form of resampling software to bolt in. Last time I worked on it I put 'hooks' in to use the libsamplerate software which worked well for me to play with here, the only downside being it's GPL, which as I understand it (but noone outside the FSF seems totally sure it would appear....) means I'd have to release ALL the source code to Playout to use it. So after a bit of hunting around I've located an LGPL one called resample which does the trick just as well. Another job done....

25/09/07: For reasons far to complex to go into here, I found myself this past Sunday sat in a house 17 miles away waiting for paint on a front door to dry - it was planned in advance however so armed with laptop I got to spend a few hours pushing Playout forward. The good news is that the key code changes necessary to properly support the User Profiles feature are now in place and I've checked out the basic functionality of Playout. However since the changes affect nearly every aspect of Playout with regard to it's handling of playlists, categories, voicetrack programmes etc. there is still a fair degree of testing to do to ensure all is well before even starting to upgrade the actual User Profile part of the software.

14/09/07: It has been fairly quiet on the development front recently mostly due to being busy on other fronts (mostly DIY it would seem). However those nice people at Steinberg have signed their part of the ASIO license agreement so I can fully integrate ASIO support in future Playout releases. At present it remains an optional add-on however the folk at Unity101 have been using it recently as it's proving a solution to the stability problems they've been having running Playout on their M-Audio Delta 66 sound cards.

The infamous GoPlay! software has made a brief resurgence (one day I really must get round to finishing off and marketing this properly) as a beta tester told me it was crashing with the latest version of Winamp. Being a Winamp plug-in its a right pain to debug but I have duly tracked down the problem and addressed a couple of other issues which came to light so they can be rolled out again and ignored for another year.

Finally for now (and on a similar theme) I had another BBQ come party this past weekend which is always a good excuse to roll out the Playout online requests again which always proves popular. This year I tidied up the web page from the ghastly orange I used a couple of years ago but it all performed faultlessly even with Jim sticking a couple of gig of dodgy mash ups into it at the same time. More info is on the Technical page.

26/07/07: A new OAS Audio core (0.94) is now available, this reflects the version currently shipping with OAS Playout v3.1x. Mostly it adds improved error handling and detection over prior releases.

Whilst checking the link's I also noticed that Audiocoding's website (http://www.audicoding.com) has disappeared - well it's just a holding page now. The sources for FAAD/FAAC are still around on Sourceforge but there was quite a lot of useful stuff on that site so hopefully this is just a temporary thing.

22/07/07: Had some very good feedback from the folk at Unity101 who've been getting to grips with the voicetracking element within Playout. They've been using it to good effect more and more over the past few weeks and on Friday successfully automatically scheduled a programme to run for the first time - then enter automation mode on completion. Their only minor quibble really is with the segue editor - after inserting a recording the next track has to be repositioned to the end of the segue which involves several mouse 'drags' to achieve and each drag involves decoding a portion of the audio file so the whole process can take some time. It's something I was aware off and was never too happy with during the development and trial period but hopefully I can come up with some improvements during voicetracking development phase 2.

28/06/07: Our Image broadcast may well be the last one for a while - at least from the home of Image Communications, Luton where an unfortunate water related incident has not only caused a degree of damage but also shown up the presence of asbestos in the ceiling of Jim's fine studio conversion. For those who've been following my updates for a few years will recall me mentioning the progress of this over a good few years and if the verdict goes badly the whole lot may have to be ripped out because of this. Jim's blog has the latest....

Last weekend also saw me roll out an updated Playout release - v3.11. It's in no way a significant update but I really wanted to "undo" the button wall change which went into v3.09 because it had a few unforseen side effects, I wasn't happy with it and really didn't want users getting used to it. Realistically then this should be _the_ baseline build now for the forseeable future (yep, I know I've said things like that before and it's backfired....) but the next job remains re-engineering the database interface to properly handle the profiles update - which is going to be a long and tedious exercise and may not really get underway till autumn time now.

18/06/07: Following last nights efforts, I've done a short write up on how everything went. Possibly the most frustrating thing is my soundcard drivers making a bit of a hash of the recording.

12/06/07: A bit short notice but our next Image FM broadcast will be (for 2hrs only) on June 17th (this Sunday) at 8pm. Simulcast with ftlfm, check it out here for more information.

31/05/07: I've made a start (albeit a brief one) on reworking the database software interface inside the main Playout application - it's key to getting the profiles working properly and will, when it's complete be a much cleaner interface to work with. However since it comprises a good dozen routines there is plenty of scope for me to break existing functionality - hence my reluctance earlier this year to touch it and there will be a good deal of beta testing before it going into a release version. It's also really not going to enhance the product in any visible way so not the most exciting work either....

26/05/07: Week 4 of Hastings Rock is underway and it's all gone very well thus far, so much that for the first time since being involved I've not actually set foot in the pub since the broadcast started. In part this could well be down to nothing going wrong and requiring my attention but also with the ssh & VNC links, assorted scripts running to ensure the server processes keep running in place I can pretty much do everything from here. On the Playout front, one minor issue has cropped up which is really only relevant using a MySQL database instead of the usual MS-Access solution. It is possible that (in a small time window) that Playout can load a track for playback whilst at the same time someone else deletes the track from the database (using Playout Manager). During playback, this "orphaned" track can be logged, which when the logs are viewed from Playout Manager, causes the application to crash. It's principally because the MySQL tables don't support referential integrity - with the Access databases the update of the log with this "invalid" track would silently fail. Whilst a bit of an oddity I don't like to rely on referential integrity rules to ensure consistency so a minor code change is needed to handle these conditions.

On slightly non-related Playout matters, I've been recording the odd show for DJs' from our internet stream, which is fed out in AAC+ - one of the new audio formats I've been most impressed with for excellant near FM quality at 32kbs - using streamripper on the Linux server "toaster". It works quite well however not than many players support "raw" AAC+ and even less dumped from an internet stream so I was looking for software to re-package it into MP4s. The Windows version of MP4Box did the trick nicely, then tried building the Linux version - after the usual tortuous build process it did actually work - but then ran out of memory during the compress and the kernel started killing of processes all over the shop, including the network connections to the studio. Not good. Combined with running dangerously close to running out of disk space think it's high time a disk upgrade was on the cards - that should also give room for more swap space on the server.

06/05/07: Last minute dash to get Hastings Rock on the air is complete, thus far 2 days in no real significant issues (on my side anyway, the sound processor lost a channel last night but that was nothing to do with me!). I was asked (several weeks back) if we could get the 'track now playing' & track history displayed on their myspace page, a job I didn't think would be too difficult - the usual tact has been to include a frame (or iframe) object to the HTML which display the info - but those myspace people certainly know how to lock down any code which might be malicious - what's more annoying is it doesn't simply reject it but just mangles it instead. I was all ready to give up then came up with the cunning plan of getting some PHP code to generate a bitmap mage with the track details embedded in it. the word wrapping was a little tricky but it all worked out quite beautifully (mind you still had to do some MIME type fudging since myspace also scrambles anything with '.php' in it - including images. So now I have a PHP script, pretending to be a .GIF generating a .PNG image... I'm rather pleased with it.

28/04/07: There's been one minor issue with the new user profiles I bolted into Playout some time ago which I'd been meaning to address since it's really the only thing holding up the v3.1 release and this morning I thought I'd finally sort it out. Unfortunately after less than 5 minutes looking at it came across I uncovered what amounts to a fairly major flaw in the whole logic involved in maintaining the profiles. It really all stems back to the original implementation I mentioned back in February and the upshot of it means I really now do need to re-write all the code in this area. Initially I thought of a couple of possible workarounds but it'd all get even more nasty than it is now so I've decided to release Playout v3.1 (which is overdue anyway) without this functionality and work on the re-write in the next few months. A little annoying because that was to be the major update in this release but can't be helped now.

20/04/07:Aside from fighting off some flu type nasty this past week, it's been fairly active these past few weeks - firstly in getting ready for the next Hastings Rock broadcast due to start on 5th May this year, it's mostly sundry stuff making sure everything is backed up, cron jobs setup properly on the Linux server and the latest versions of Playout installed on all the machines (I had hoped to have the finished v3.1 release done by now but it's not quite there so the latest beta is being used). I did track down (hopefully!) the cause of some rather worrying disk errors the Linux server was sporadically generating whilst accessing the removable music disk - sometimes terminally with the FAT disk refusing to mount at all. I'd originally put this down to the disk being a bit iffy despite it passing a full check on a Windows PC but the same problems occuring on the other music disk suggested it was something significant. The obvious change over last year is the kernel upgrade I did recently and then whilst foraging around on the 'net came across the statement that the "old style" 40 pin IDE connectors should not have a single (modern, UDMA capable) drive attached to the mid connector with the other dangling - which is precisely how the removable drive is wired up inside the Linux box. Turns out my newer kernel now correctly handles the m/board and enables the drive for UDMA-33 instead of the older, multi-word DMA mode.

The other thing I've been working on in the background is to add a more flexible search engine to Playout - it's something I'd always envisaged doing at some point just never quite spent the time to figure out how best to achieve it. However I've now added a new 'search mode' to the main Load dialog such that wildcard strings can be entered just to find that elusive track.... I've also been having a brief foray into the world of Windows services really to accomodate another idea I've been toying with. There's enough error recovery and redundancy in Playout now to enable it to come up and recover after a power outage or similar "brown out" however it'll normally never get that far because of the logon screen popping up and Playout not being set to run automatically on startup. So the service (it'd need to be a serivce to ensure adequate system permissions) would set the machine up to auto-logon & start Playout in the event of unexpected system crash during automation. And of course restore it after normality has been resumed....

02/04/07: We've just completed 2 weeks of back2back automation testing without any problems and a weekend of automation with the Hastings Rock system with only a couple of minor issues arising - all good news considering the issues which seem to have been cropping up recently. Most of the Hastings Rock comments I've traced down to badly set cue points - whilst the system does do auto cue setting it's not going to be 100% accurate for all tracks and it's those ones which cropped up here (also not forgetting many of these tracks were setup during the _very_ early days of Playout using a modified Access database form front end and that was far from perfect). The only real issue of significant was a noticeable pause between jingles and tracks and this appears to be down to when the system is performing a playlist query to update the track list. I think we've not really seen this one before because it's really a bit of bad timing that the refresh was _always_ occuring on a jingle completing (as opposed to a track fading out where often a delay would be masked by the fade) and the playlist being quite large AND from a slow MySQL server (MS-Access does a lot of local caching so is less noticeable). Either way I think re-ordering the code such that the update occurs AFTER kicking playback of the next track rather than before should alleviate matters.

23/03/07: For some unknown reason the old track slippage problem seemed to have reared it's ugly head in recent times - just to add to all the other annoyances which seem to be occuring right now. Trouble is, it's been a while since I've used the software in anger here and in the process have updated the sound card drivers to the Kx Project ones on my main machince so I'd been kind of ignoring it. However the appearance of it on my new laptop really just confirms it is a problem. The good news is that having spent a few hours yesterday evening staring at debug logs, looks to be fixed. Oddly enough it's been in there since day 1 but I think only really crops up on high end processors where the MP3 decode time is practically insignificant so spends more time hanging around waiting for stuff to play than actually doing anything.... Not sure why it would turn up on my desktop machine but there you go..... Please please let that be the end of it now.

19/03/07: Been a fair few busy days on the Playout front, mostly trying to track down problems raised by the folk at Unity101. Some issues look to be firmly in the "flaky hardware" camp although an issue they had with the last 1s of audio being truncated has been tracked to a change I introduced to support some of the ASIO functionality in the audio core (currently only in the 3.09 release). A slightly more quirky effect has come about in that for some reason they've been running the _same_ playlist simultaneously on two different Playout instances and contention is occuring trying to update records inside the MS-Access database ("[Microsoft][ODBC Microsoft Access Driver] Could not update; currently locked by user 'admin'") being the diagnostic message however I remain unconvinced that even despite this slightly dodgy use of the software the odds of hitting the update of the same record in the playlist is still quite remote. The web doesn't yield that much useful info on this one, the most likely seems to be this "paging" concept Access uses which can lock a range of records. A small retry loop on the update should hopefully alleviate this one.

Their biggest issue however remains in that their new machine appears to get itself into a tight (1s) loop, often requiring a complete reboot to recover and what with everything else I feel partly obliged to prove its nothing in the software. This effect is normally caused by the system being unable to keep the DirectSound buffers supplied with data however there are a couple of places in the audio core which can loop indefinately under error conditions which I've been adjusting to timeout gracefully and report a failure up to the application. I've suggested they run with an older release on another machine for a few days then maybe introduce this new release to try and track down the exact area thats causing a problem but having seen nothing like this since the early days of development there is a very strong possibility it is hardware/driver related specific to their platform (especially since the release they are using, v3.07 is the same one I ran consistently at work over a 2 week period last year without issue). In the meantime I'll put the current 'beta' through a similar round of tests over the next week.

16/03/07: The arrival of my spangly new laptop highlighted a minor anomly within Playout - that of it's screen sizing for non standard displays (most laptops these days seem to be 'widescreen' hence a resolution of 1280x800. Currently releases seem to generate a large grey area to fill the remainder of the screen, an issue I thought would be quite straightfoward to resolve.... but has resulted in me swearing for several hours at the whole logic thats in place (mostly to handle the whole 'enhanced' vs. normal modes and Windows seemingly inability to report consistent screen sizes for different machines). I've put it through a bit of a tidy up & sense check such that it should behave in a much more sensible manner for all screen sizes/font sizes - heh but I've been there before.

The other thing which has cropped up today are further "problems" at Unity101 using the latest release(s) - they seem to be having playback issues on a new machine along with spurious database update issues. I'ts an age old problem - I'm fairly confident nothing new that has gone into the software recently can cause these issues hence it's more likely to be the hardware/software combination of their environment thats at fault but it's being able to definitively prove it. One of the problems in this line of work is that people have a habit of changing more than one thing at once - having changed hardware & software then discovering it doesn't work makes it that much harder to resolve the issue.

09/03/07: It's not been a good week all round on the computer front, my trusty but aging (as in 8 years old) laptop has been slowly dying and my attempt earlier this week to take it apart to reflow the solder on the power connector has finally condemmed it, mostly through poking a screwdriver through the display flexi. A new purchase is therefore in order. I also made my annual futile check to try and get a broadband package for Hastings Rock just for the month without then having to pay excessive disconnection fees afterwards, alas though the situation remains the same as ever. On the Playout front, though I've further enhanced the failure handling & recovery of the software in automation mode following a couple of reported incidents at Unity101 - they're having PC woes right now. Possibly the only positive news is that the webcam I intend to use for Hastings Rock (see last entry) turned up today (a Logitech QuickCam express) and using the SPCA5xxx Linux driver appears to work just fine on toaster although it'll need more extensive hammering to ensure I'm confident that this is a workable solution come broadcast time.

23/02/07: I've spent a fair amount of time this past few weeks on and off attempting to upgrade the Linux kernel on our Hastings Rock server machine ('toaster'). It's been running a fairly old distro of SuSE Linux (6.4) with a 2.2x kernel and whilst I've upgraded several aspects of it over the years, including newer revisions of the 2.x kernel I really need a 2.4 kernel on there to run newer software and I also want better USB support (2.2x is a bit like Win95 in that respect - later versions knew about USB but didnt make much use of it). The kernel upgrade is straightforward, its more the supporting utils which need updating which make it a little more tricky however it does look to now be working with the 2.4.32 kernel. I think the lack of support for the new features available in the kernel within the distro may well put me off doing a similar process on my main machine (from 2.4 to 2.6) but we shall see. One thing I'm now considering is, based on the agro in previous years with running a stable webcam, seeing if I can get one working reliably with Linux. My existing Creative cam fails dismally with the experimental epcam driver (does one image okay then either crashes the box or does naff all else) but I've had better luck with a borrowed old Logitech camera so have ordered a new one to see if the aging P266 be up to the job....?

10/02/07: OAS Playout v3.09 is released today. This is mostly a bug fix release prior to the new v3.1 release planned in the next few months. See the release page for more information on the updates in this new version.

04/02/07: I've put in a fair amount of time this weekend into getting user profiles working in Playout - despite a couple of false starts it looks to be now working. On the one hand, since it lives off the back of the existing 'filtering' capability, the changes to the core software are minimal however on the flip side since the original 'filter' implementation was (dare I say it) a bit of a hack anyway (and I still find the odd quirk to this day), keeping within that implementation makes some of the internal logic really nasty. However the thought of completly re-arranging the logic across the whole software to give a cleaner overall solution quite frankly scares me so it will stay as is for the time being.

Check out ftlfm.com tomorrow night from 8:30pm where the loverly poots will be entertaining the world and doing her darndest to break the latest (Playout) release.....

27/01/07: I've made a very early start at the next significant(ish) update to Playout which will include support for user profiles. This will hopefully form the basis for Playout v3.1 which I intend to roll out in the next 3-4 months. In the meantime, Playout v3.09 is currently undergoing assorted beta testings - this has a few additions and minor bug fixes over the current production releases but I intend to hold off releasing this one unless someone finds something signficant in the current versions.

05/01/07: Happy new year everyone (especially those who contributed towards Playout this past year....) . I've made my recent Id3lib unicode mods available now on sourceforge plus you can find a ready built binary on my PC Software page. There are no interface changes so anything which utilises id3lib on Win32 platforms, this should serve as a drop in replacement. Unfortunatly with development in Id3lib practially stopped, unless this changes in the near future an alternative will have to be saught particularly as the newer Id3v4 tags become more prevalent. I had a quick look at Scott Wheeler's taglib the other day which looks a possible promising alternative provided a stable Win32 port is either doable or in existence.

Whilst touring various sites I also came across an audio format I'd not come across before - FLAC is a lossless compression format (unlike MP3 et al which throw data away, the premise being the "thrown away" data you can't actually descern with your ears....) so the audio _is_ as good as the original CD quality (44khz/PCM) or whatever the source format was. I confess I'm not too sure about the merits here, I did a couple of tests and got files which were about 50% of their 'raw' original - so for a 3min track thats about 17-20MB. So way above the size you'd expect from MP3 and similar and is the quality really that noticeable from a high bitrate AAC file say at a fraction of the size. Think if you're that bothered, you'd stick with the original PCM/WAV file and be done with it.

Archives

 

©2009 OnAStickSoftware, Comments to: playout@onasticksoftware.co.uk