Audiowall Synchronisation

Having two studios, one of which at a “remote” site can be a bit challenging to say the least.  One of the challenges involves is to ensuring that audio played at the remote site does so reliably and consistently.  This turns out to be a fairly significant problem.

Our playout software uses an audio collection called an “Audiowall”, which is reminiscent of an actual physical wall full of tape carts in a rack. Back when radio stations used cart players for jingles, this made a lot of sense and was the best way to organise them.  This concept has been transplanted into the world of digital playout, and now our playout software (PSquared Myriad) provides a virtual ‘cart wall’, into which audio files are given a number (from 1 to 99,999), and placed in the audiowall browser in that location.  You can scroll through ranges of carts and pick out which ones you want to play, drag them into the log, or just play them right from the audiowall.

This is a fairly well known concept, and a lot of playout software uses it.  However, when you have a remote site, you need to be able to get to the audio in the “audiowall” from that site the same as you can from the local site.  One simple way of achieving this is to place the audiowall on a Windows share which all the playout machines can access.  This works, and is perfectly fine when all your machines are on the same LAN.  However, when you’re connecting to the share over a more flaky connection, it’s quite possible that it will fail, or become congested, causing stuttering as you play our the audio.

So another solution would be to set up a local copy of the audiowall at the remote site.  You can do this by using robocopy (ROBust Copy) and you can use scheduled tasks to update the audio as required.  However, this presents another problem – these robocopy scripts only allow you to copy the state of a directory in one direction.  Any changes you make to the copy will not be replicated in the source (for example, you create a file with the same name, e.g. MYR2341.wav in the copy, and that will be replaced by the copy at the source).

One solution to this would be to split the entire audiowall into ranges, where one range is copied in one direction and another range is copied in the other.  That way, both locations can copy into the audiowall, and both locations can read what has been imported by the other.  This is a solution, which apparently some people use, however it’s not particularly scalable (the more locations you have, the less carts you can write to in each location) and is confusing for users going from place to place.

This was the route we were set to go down – however, it turns out there is a third option.  Bi-directional synchronisation has been used for many years in mobile devices, to synchronise contacts, calendars, email and other items that you may want to edit on a mobile device and have the changes reflected in the version on your PC.  Microsoft has developed a framework which adds to the .NET framework called Sync Framework which is designed for creating applications for precisely this.

We have designed a program which is based on their File Synchronisation Example which can synchronise any two directories, and will check last modified dates and creation dates as well as looking for deleted files on local and remote copies (all using change tracking) and will synchronise those two directories leaving both with the most up to date files.

The only slight problem is that if two files are edited in different locations at the same time – in this instance, there will be two “conflicting” changes.  The Sync framework object will, by default, pick the file with the latest modified time as the “winner”.  Losers can be processed differently, but in our case we set a directory to place conflict loser files into (so that they can be recovered easily should this happen to someone).  Providing users use their own cart ranges, this should rarely present a problem – but if it did, then the mechanism is there to retrieve any data, and no data is lost in the process.

There are some domain specific tweaks we’ve had to make to support Myriad specifically – treating “list” files and inf files differently to try to ensure that metadata remains consistent throughout. In particular, if a cart is delete at a remote site, the wav file will be deleted, as well as the individual “list” file for that cart (providing you have that option turned on in Myriad) – however if Myriad has locally “seen” that cart, it will copy that metadata into the global list files (called CartsXXX.lst) and will trust that – even though the cart has been deleted.  To date, the only way to resolve this problem is to run the Auto Importer Tool to remove all non-existent carts, which is a rather slow process.  We’re working on a way of being able to tell Myriad that the cart has gone and that it should remove it from the Carts.lst file which it has locked whilst it is running.

We have also designed a synchronisation triggering mechanism that allows us to create different ways to trigger a synchronisation operation.  For example, we have a trigger which watches the directories for changes – when a significant change is detected, a sync is performed.  Another waits for a predetermined amount of time before firing a sync operation.  Another provides a TCP/IP interface which allows you to remotely trigger a sync operation.

And all of this would not be much good unless you can see what it’s up to – so the service has a number of logging options – Windows Event Logs, plain text file, remote syslog and possibly more.  Email notifications can also be set.

The program is implemented as a C# Windows System Service, with a GUI configuration program.  The code will be made open source as soon as it is bug free enough to warrant inflicting it upon the world, and has been battle tested.

CSR History – (UKC Radio ~2003)

I came across this images a while ago, but I have never had enough time to upload them.  They were taken back when I joined UKC Radio in roughly 2003.  Apologies for the low rez image quality, my camera phone at the time was a mere 640×480 beast :-)

The above image is a shot of Studio 1 complete with Alice Series A desk (this is still used today in Studio 1 CSR).  Back then, the facility was divided into two separate studios.  From memory only one of these studio ever had a working broadcast desk / not used as a store room.

Now days engineering /tech room is alot larger due to the requirements of having to host alot more kit.  Back then it was a pokey little room.

As you can see, back then we had lots of equipment, the only issue with it was 95% of it was total rubbish.

The above picture shows the top half of our old equipment rack.  The first 1u unit was a Audionics AM processor designed to make the AM feed sound good.  The second rack unit was the Radica AM transmitter together with a custom made Station switcher in the 2u unit below.

This is a shot of the bottom half of the rack.  This shows a custom made DA (Distribution Amplifier) together with a Netgear switch and two standard PC’s, struggling to host a website and internet stream.

This was the lobby/production room although was usually filled with rubbish.  In the background of the picture, the entrance to Studio2 can be seen.  You can also see a poster with CSR written on it.  This was from an RSL broadcast which happened in ~2002 which I believe kick started the CSR project.

We have come very far since those days with the CSR project.

Hope you enjoyed the photos.

Rich

Studio Blue Cabling

This weekend we did some more work on Studio Blue. We’ve had contractors in over the last few weeks sorting out the electrical supplies for us.

Here’s the three phase connection we had installed.  It’s a 32A feed which will be going straight into our 10kVA UPS, at the bottom of the engineering rack.

 

The wooden thing on the floor is the plinth which our Prism rack will be sitting on.  This was built by one of the carpenters.  The idea is to have a section of false floor which allows us to run cables into the bottom of the rack straight from the trunking – such that when the rack is locked the cabling won’t be accessible.  As it turns out, the holes to either side were in fact in the wrong places – nothing a jigsaw can’t fix!

Here we see our cable runs in the ducting (the orange and purple ones), ready to get terminated into wall sockets.  You can also see the audio sockets underneath the trunking, which run back to the main patching point in the studio (more on that later).

 

Here’s the trunking running into the new studio – the orange cables seen here are CAT5e, which is what we’re running all the networking in the studio on.  This supports gigabit over short distances, so we’re all set for upgrades.

Here’s the cables coming in from the other room (before tidying it up ready to run into a patch panel)We ran a total of 18 network runs from the rack to sockets on the wall – totalling around about 350m of cable.  Here we see Andy running the cable ties onto the loom ready for the rack to be built on the plinth.

 

The studio also has audio infrastructure, including a 16-pair multicore which runs from the studio to the rack – which lets us send audio to and from the studio.  We’ve also got install-pair cable which runs to points around the room – this means that we can be a bit more flexible with where our mics end up.  Each of the mic channels on the desk have an A/B select button, allowing us to use two auxilary mics if required.

 

Here’s a closeup.  The first two sockets go off to a pair of MR5′s we’ve mounted on the wall.  The rest go to similarly named points around the room.

 

Here’s the Mackie MR5′s – not the ideal position for them, but it’s pretty much the only place we can sensibly put them!

We also put up the indicator lights – standard issue bulkhead lights (about £6.99 from Newey’s I believe) with coloured bulbs.   On the inside of the studio, we’ve got Mic Live, Offer and On Air.  Outside we dropped Offer (as it’s only really useful to someone who has the ability to accept!).

Here we see Rich making use of a a patch panel box to equally space the lights.  If anyone ever asks why they are that distance apart, we will have an answer!

We also built the prism rack, and installed a few other bits of equipment too.
The guys worked really hard over this weekend, and we made some really good progress!  Things are looking good!

Mygration

Since we moved to the computer based playout system (psquared Myriad), we have had issues with this functioning correctly at Studio 2. This is because the servers which hold the audiowall and logs for the playout software are hosted at the University of Kent facilities, which is connected to the Christ Church facility over a network. However, this network is also used to push traffic from Christ Church and the general internet – as it’s their main route for their internet connection for their campus. We have no priority over their traffic whatsoever. If the connection lags out slighlty – Myriad goes a little crazy and starts corrupting things – mainly the logs, which is a very bad thing indeed. You also get issues with audio being streamed over the network.

In order to remedy this situation, we are going to redesign the way we implement our playout over the entire station – in theory to make it more resilient to network failures, and asynchronous. However, we can’t afford to buy all new hardware to implement this system on – we’re going to have to use the existing hardware. But the existing hardware is in full time use (we use it for our sustainer service, and is a core part of our live broadcasting on a day to day basis).

What we decided to do was to borrow some older machines from Kent Union, cobble them together to have just enough hardware to run, and migrate our Myriad system over to those machines temporarily (for the sustainer and Studio 1).

First they needed cleaning out

Then we had to get Windows XP installed on them, along with Myriad v3.6 (which we got some trial 60 day licenses for), and make sure all the hardware worked OK.

Our normal setup uses a Delta 1010, which has 8 outputs (4 stereo), so we have 4 stereo channels. All the presenters are trained in using these 4 faders, and will get supremely confused if they only have 2 to work with. As it happened, we had a Delta 44 going spare – that gave us our first 2 channels. We also have some USB sound cards, which we managed to get another channel from. And finally, in a fit of exasperation, I dug up a Sound Blaster Live! from the parts bin. We got our 4 channels.

The gains did have to be set up a bit weirdly though

But it works!

We used robocopy to copy across the audiowall and other bits and pieces required to run it – so we were able to run the same scheduled logs as normal, with no continued impact on our service whatsoever.

Soon, we will be implementing the new playout solution, and we will have to migrate back again. Chances are the setup will be so different, we won’t be able to migrate quite as seamlessly – but hopefully it won’t be too awkward!

Hit The Switch 19th June

Hit The Switch 19th June 2011

This week, we talk about zombpocalyse now, Minecraft architechts,Google voice and images search and much much more…

Enjoy!

Hit the Switch 12th June

This week’s Special Edition of Hit the Switch – with special focus on E3!

Hit the Switch 12th June 2011

Enjoy!

Hit the Switch 5th June

This is a test of the way we want to generate podcast feeds.

Hit the Switch 5th June 2011

Hopefully, WordPress will be so nice as to make a RSS feed based on category that I’ll be able to link to and make everyone extremely happy

Oh look, now we can publish a RSS feed for Podcasts.

Studio 2 Refit – The Beginning

First a little bit of history. CSR was formed in 2005 when two student radio stations, UKC Radio and C4 Radio, joined together in order to obtain between them a community license for broadcasting on FM. Between us, we had a mishmash of equipment – with a studio at each campus (both Univeristy of Kent and Christ Church). The project required that we utilise both of the studios, broadcasting from either one as required.

In the early days everything was pretty good. All of our playout was CD based, and (other than a few problems with CD decks getting stuck) everything worked nicely – including switching between studios. However, circa 2007 we decided to move over to a PC based playout system – namely psquared’s Myriad.

Given that we wanted to use the same playout system over two sites, this presented us with a number of intermittent, next to impossible to diagnose problems with the playout software. It is simply not designed to work using remote filestores on an Active Directory system (such as the one which we operate). This effectively made Studio 2 useless, as there was no playout system there. We have now come up with a possible solution (which really deserves it’s own post). The studio also had no money invested in it from the start of the project – and was in dire need of repair and upgrades.

Fast forward to 2011 – we’ve got the approval of the directors of CYSM Ltd (our parent company, set up in order to obtain the license) to perform some major upgrades to the facilities at Christ Church University, Canterbury. These improvements include moving the studio to a much larger room which we have next door to the studio, as well as purchasing entirely new audio equipment for the studio, and updating our entire network infrastructure (both at Studio 2 and at Kent), unifying the way our network operates over the two sites.

Our goal for Studio 2 is to make it speech-centric, since this is an area in which we currently lack in our output. It will feature a Sonifex S2 mixer with 5 mic/mic channels – and 5 fixed microphones along with sockets on the walls for additional ad-hoc microphones to be added if required (for example, for musicians or a “studio audience”). We will also have Myriad playout available (assuming that our new plan works), with the ability to record voice track shows (i.e. pre-recorded segments in between each scheduled song) at that studio. We will also have a FM feed for monitoring, replication of the satellite receivers for IRN news at the studio for added redundancy, together with the usual compliment of CD players, vinyls and DJ mixers (potentially with line in for laptop use).

Today we started work on the Studio 2 project. The first task would be to move the studio furniture into the new room – which we started by dismantling the furniture (including acoustic panelling) in the existing studio and moving it to the new room.

The major thing which we achieved today was to hang the majority of the acoustic panelling on the walls (which, as it happens, just fits almost perfectly!), and move the custom built desk (inherited from C4 Radio) into the room.

Panel asjustments

Some of the panels needed some minor adjustments to fit into the spaces on the walls. This was achieved using some strategic application of hacksaws and an assortment of power tools.

Hanging panels

Panel hung

And there we go! Just another 9 to go …. :D

The desk isn’t going to be staying – we’re only moving it in there to clear the room and give us something to work with whilst we test the new facilities. A brand new bespoke desk (to go along with a brand new mixer, and microphones) will be build which will be exactly perfect for the job (though the specifics are currently not decided upon). The new room which we have is very much larger than the old studio, so we want to make efficient use of it.

The old studio is now going to be re-purposed as what we’re currently calling Engineering2. It will house a rack, with all the networking, audio linking and other equipment that we need to broadcast from the studio. This will also allow us to concentrate as much of the heat generating, noisy equipment away from the studio as possible.

CSR@Keynestock 2011

Keynestock is an event which has been happening annually for something like 40 years at Keynes College at the University of Kent, Canterbury campus.  For an idea of what the event is like here’s a video of the event in 2009:

And here is the Keynestock 2011 Facebook page

 

CSR has a pretty large presence there – this year even more so as we were officially asked to compere for the event as well as provide live coverage, and be heavily featured in the video coverage for our interviews with the acts and judges.

This event presents a few unique technical challenges for Technical Services – which over the years we’ve managed to overcome, each year improving our capabilities for the event.

Our usual setup is to build up an OB studio in KS1 – a room which overlooks the courtyard in which the event is held (in the video above you’ll see our banner on the side of a building – just above that is our studio). Our studio consists of a mixer, a few microphones, a playout solution and outboard compressors. As of this year, we now own most of this, with the exception of the compressor/limiters. This is what the setup looks like in use:

CSR@Keynestock Guests

We also get a mono signal from the stage which we use to provide live coverage of the acts currently performing. The method by which we’ve done this in the previous years has varied, but now we have a preferred solution. Previously, we have run a long run of balanced cable from the front of house mixer (i.e. the sound desk) to our studio. At the time, this was fairly convenient as the mix position was directly below our studio. However, ever since a fence was built where the stage used to be, the stage has been moved and rotated by 90 degrees – so now the mix position is as far away from the studio as it possibly could be. This makes running cables rather awkward. Added to that, whenever we did use a link like that we would get a ground loop buzz because we were powering our kit from a different phase to the PA. The only way we managed to eliminate this was to run power from the same place as the PA – which previously was feasible, but now not so much so.

Therefore now, we use a beltpack wireless mic transmitter to send the audio back to the studio where we have a wireless mic reciever. This works pretty well, and in fact is a solution we like to use for other OBs where we want to get a feed from a stage, as it is less intrusive on the operators (pretty much we plug it in and leave it). The only slight problem is that the beltpack transmitter is battery powered.

We solved this by making a “fake” battery, dubbed the Dura-smell. It is a small foam block with a 9V battery clip glued to it. The lead then goes out the back of the battery, and our a small gap in the battery case to a DC inline socket. We then bought a regulated 9V power supply, and we use that to power the belt pack.

There are a few pitfalls when using such a link – you have to be pretty careful you don’t oversaturate the link with too high levels, or it sounds dreadful. Normally we’d like to do this by limiting the signal before it goes into the transmitter – however this does rely on having somewhere to put said limiter, or one being provided for us. At Keynestock, Kent Tech (who were running sound for the event) kindly mixed an aux and compressed/limited it for us before we took it into our transmitter.

Next up our lovely mixer. This is our Allen&Heath XB14, their first entry level broadcast desk. It is compact and works rather nicely for our OB requirements.

CSR@Keynestock OB Mixer

Each of the mics we set up also used an insert from a compressor/limiter (dBX 266) hired from Kent Tech. Given the nature of the event, there were some tricky challenges we needed to overcome with the compressors. Mainly, we wanted to put some mild compression on the presenter mic, but without gating it too heavily or picking up too much ambient noise. The cohost mic, however, needed to be heavily gated so that it didn’t pick up too much noise when the channel was turned up but the cohost was not talking. The guest mics were particularly tricky – as the guests would often consist of anything from 2 to 6 people, not all of them would be near a mic when they were being interviewed.

CSR@Keynestock

To get around this, we gently gated the mics (at about -50dB, with a 1:1.3 ratio, just to try and cut off noise as much as possible without loosing quiet voices) and compressed the hell out of them (compressed at a threshold of about -20dB with quite a sharp ratio (something like 1:20), and a fast attack). Therefore we could set the gains quite high and still hear what the guests are saying.

CSR@Keynestock Compressors

Also, as an added bonus, we also provided an output to a video camera which was used to tape the interviews with bands. That way they got broadcast quality audio with their pictures, rather than using their own snap on mic.

Last of all, we needed to get the signal back to the transmission site.

CSR@Keynestock Encoder Machine

For this, we use a laptop running SimpleCast which connects to our stream server. The laptop has an Edirol UA-25 USB sound card which as TRS inputs on it, which we take directly from the mixer. We then encode the feed using AAC and send it to our Icecast server. On the other end, we have a machine in the rack running VLC which plays the stream. Our scheduling system allows us to schedule a time to switch an airswitch between 3 positions – sustainer, sustainer with IRN (news) mixed in, and OB. We put in a command to switch to the OB input at the given time, and the OB goes live. This, of course, relies on the people in the OB studio being ready for this to happen. Normally, we like to send a lineup tone just before the broadcast just to check we’ve got all the levels correct and we’re linked up OK to the other end.

This year, we went on air dead on time – possibly a first for us. We then broadcast for 8 hours without interruption, until close when we switched to the news before resuming our normal sustainer service. We transmitted approximately 1.2GB of audio data over the network.

So that’s how we did Keynestock.

OB Cables

So for a long time, CSR has had the problem of not owning it’s own cables we use for Outside Broadcasts. We were forced to hire the small menagerie of fairly standard cables (mainly XLRs) from Kent Tech in order to do any of our OBs. This was less than ideal, especially when we were covering an event which Kent Tech was also doing, and they needed lots of cables for it for some reason or another.

So we resolved to get our own cables.  In particular, we wanted to make sure that they were exactly right for our purposes, and fit the following critera:

  • Easily identifiable as our cables, and not Kent Tech’s or anyone elses
  • Made it easy to see which end of which cable is plugged in where (e.g. which mic cable is plugged into which mixer channel and which microphone)
  • Make them easy to coil properly
  • Make them traceable so that we could easily log if a cable is broken.
  • Make sure they last a long time – as this would be a fairly significant investment in our OB capabilities.

The majority of the cables which we regularly are in need of are standard XLR mic cables.  There are a few other adaptors and things (RCA to XLR, TRS to XLR) but they can all easily use the same kind of cable – and I won’t document them here (but maybe at another time).  We decided to make up our own cables, as we have the technical skills required to do so – and we get exactly what we need and know about the quality of the cables (as we’ve made them, we’d have only ourselves to blame if they broke!).

And if we were going to make our own cables, we wanted to do it properly.

So we decided on using the following:

  • 120m of Van Damme Classic Mic cable (in red, as opposed to the usual black)
  • Neutrik XX Series XLR male and female connectors
  • Coloured connector boots (or bushings as Neutrik call them)
  • Coloured connector rings
  • Velcro cable ties
  • Shrink wrap with paper labels

Pretty much all of this stuff we purchased through Idium (through a CSR Tech Alumni of ours).

CSR OB Cable Session Reel of Van Damme

This is the mic cable that we used.  This is a 20m drum – for some reason VDC, the company providing the cable, didn’t give us a reel with 120m spooled onto it, they gave us a 100m reel and a 20m reel.  Thankfully, we needed two 10m cables so this just got cut in half.

CSR OB Cable Session XLRs

Here are all the connectors with boots.  They look quite pretty!  We assembled all of the connectors to ensure that we had all of the right parts (boot, crimp, connector and chassis) and make sure that they never got parted during production (would have been terrible if a cable had different coloured ends!).
CSR OB Cable Session Measured

Once we had all the materials in one place, we made a makeshift desk ruler by measuring out a meter and marking it with electrical tape.  This allowed us to measure with a reasonable amount of accuracy all of the different lengths of cables we needed.

After we measured the lengths of cable out and cut them,we took the connectors and PUT THE BOOTS ON THEM.  This ensured that at no point did we ever accidentally solder up a connector without putting a boot on the cable (a common occurrence - just ask anyone who’s ever made any amount of cables up before). At this point, we also put a small length of heat shrink, and a velcro cable tie.  The cables had all the parts on them that were required before soldering them.

Then, we stripped the ends of the cables.  We used the assembly guide to make sure we did this by the book (or rather, by the PDF).  We used this diagram as a starting point:

 

The measurements here are in millimetres.  We ended up stripping a little more than 4mm off the signal wires, as it meant we could snip 1mm off the end when we tinned them.

We then tinned the wires, and the solder buckets on the connectors.  Once this was done, we soldered the wires into the connectors.
CSR OB Cable Session Soldering

Rinse and repeat many, many times.  Well, 28 times to be precise.  And, not once did we forget to put a boot on a cable!  However, we did find that when tinning the solder cups on the XLR female connectors, it was quite easy to accidentally put too much solder into the cup such that it wicked out to the sprung receptacles, rendering the connector unable to mate properly.  In other words, they didn’t click and lock when you plugged them in.  This was a bit of a setback, and resulted in us needing to replace about 6 connectors.  However, once this was done we tested each and every cable, including a brief stress test to make sure the strain relief clamps had engaged properly and there were no dry solder joints.

Once tested, we took a paper label and shrunk the heat shrink over them about 25cm from the end of the cable, on the female side (arbitrary, but consistent).

The labels contained a code which consisted of a few items:

CSR – XXYY-DD-C

Where:

  • XX = First connector (male first)
  • YY = Second connector
  • DD = two digit length (e.g. 10, 05, and instead of decimals I added an extra 0 so a 0.5m cable is 005)
  • C = colour of the boots

They also had the postcode of our offices, should they find themselves gone astray.

The connector types we used were:

XM
XLR Male
XF
XLR Female
TR
1/4″ Tip Ring Sleeve (Stereo/Balanced Mono) jack
TS
1/4″ Tip Sleeve (Unbalanced Mono) Jack
RC
RCA/phono jacks
MJ
Minijack

 

In this batch we didn’t use all of these codes, but they’re there for future use.

We found that the best way to avoid air bubbles when heating the heat shrink sleeving was to start at one end – make a good seal and then slowly work your way to the other end of the shrink.  There were still the occasional bubbles, but these mostly could be gently pushed out before the sleeving cooled down.  We also found that the best way to avoid the paper crumpling when being shrunk around was to wrap it around something with a smaller diameter first (we used a screwdriver) to give it a curve.  When the sleeving shrunk over it, it rather nicely contracted in size without any crumpling, and made a watertight seal around each end.
CSR OB Cable Session - Final Products

And that was it!  In the above picture you can see, from left to right: four 10m XLRs, six 5m XLRs and four 2m XLRs.

There are also a few other 0.5m cables which aren’t in shot which have conversions between TRS and XLR of both gender, for use in various specific parts (for example, the Allen and Heath XB14 has studio monitors coming out on RCA sockets, for some unknown reason (why not TRS? That’s a bit confusing, A&H).  Our monitors do have RCA inputs as well as unbalanced TS on them – however we wanted to have the ability to run them off one of the nice XLRs that we just made up .  So we made an RCA to XLR male adaptor, and then two XLR female to TS adaptors.  That way, we can run an unbalanced signal over our XLR mic cables to our monitors, should we wish to place one in another room for example.  There’s also the other occasional oddball – like our wireless mics output on TRS.  Always good to have a few TRS to XLRs hanging around.

And now, we are entirely independent of hiring cables!  We can stop paying to use someone elses cables, and do OBs whenever and wherever we want to, without having to worry about something so simple as plugging in a microphone.