|
| ||||||||||||||
|
OAS Playout Development
Current State of play... OAS Playout V3.2 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. Retail pricing & licensing options are detailed here. Already OAS Playout has been deployed successfully on a number of RSLs over 2002-07 with very positive feedback on all fronts. Watch this space for news on latest updates & progress. 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. 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/ 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.... 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. 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. Archives | |||||||||||||