A Walk through a Broadcast Audio Processor

Recently, CSR FM have aquired a Soundweb London BLU-100 (which I’ve raved about in the previous post). Amongst the myriad of things which it can do, it can also do some quite complex signal processing. Currently, the CSR FM airchain goes from program output (via a switcher), to a DSPXmini FM processor – which processes the audio and compresses it so that it’s of uniform loudness, then on to a 50W FM transmitter (of which we’re only using 25W).

Unfortunately, the FM processor does not have an audio output on it, only a MPX signal which goes directly to the transmitter (which has fancy things like stereo pilot and RDS encoded into it directly) – as such in order to do our online stream we have to have a FM tuner tuned into the frequency, which then gets distributed to a few places, including a Delta 44 on the encoder machine which then goes out to the online stream.

This isn’t ideal, for a couple of reasons.  Firstly, any FM signal gets a bit distorted no matter how close you are to the transmitter (it’s directly below it in the rack, in fact).  Secondly, the FM signal adds ‘clipping’, which is essentially cutting the peaks off waveforms flat.  You’d normally say this is distortion – and it is!  However, over FM, being an analogue medium, this actually sounds good and can add to the loudness of the station if done right.

But when going over a digital medium, it sounds horrible (and sounds like the input on the soundcard has been saturated).  It’s especially bad when you encode it into a lossy codec such as MP3 – the square edges of the waveforms have lots of high frequency components (check out this video demonstrating how using the Fourier series a square wave is made up of an infinite number of sine waves of increasing freuquency).  An MP3 encoder tries to compress the audio by removing ‘useless’ information, that is frequencies that the human ear is less sensitive to.  If you throw in lots of high frequency components, it ends up thinking that these are important frequencies when in fact there is much more valuble information that it can compress in different parts of the spectrum.

So, we can come to the conclusion that using a clipped audio source for lossy digital transmission is not good.  This applies to online streaming as well as other digital media like DAB, DVB or XM broadcasting.

Therefore, we need a separate audio processor which does everything that our FM processor does, except without the clipping.  If we had a better processor – such as an Orban Optimod – it would have two outputs, one with clipping and one without.  Unfortunately we don’t have that much money to spend on processing, especially with the Studio 2 project ongoing.  So, therefore I decided that we might try to build our own processor using the BLU-100.

In essence, a broadcast processor has a few general stages which it uses to make the audio output of the station sound uniform and punchy.  Namely, these are -

  • Wideband processing (gating, AGC, compression)
  • Multiband AGC
  • ‘Enhancement’
  • Multiband limiting/compression
  • Final limiting/brickwall limiting

A bit like this:

 

My mission is to implement this using London Architect.  I have pretty much all the components I need in the audio processing section of my BLU-100, so lets give it a shot!

Continue reading “A Walk through a Broadcast Audio Processor”

I <3 Soundweb London

NOTE: This is most definitely not a tutorial, I’m mostly making it up as I go along.

So, yeah – recently my radio station has acquired a rather lovely BSS Audio London Soundweb BLU-100.  It’s a “sound management” device, which (on the main unit) has 12 inputs (6 stereo) and 8 outputs (4 stereo), as well as 12 logic inputs and 6 logic outputs.  You can also add break-in and break-out boxes to get even more inputs and outputs.  You can also hook two of them together with CAT5e and have 48 channels of audio going over it from one side to another.  Oh and did I mention it also has an Ethernet and RS232 interface?

But what does it do?  The question is rather what doesn’t it do.  What we’re going to be using it for is mainly routing audio around the radio station, and doing on-air switching (i.e. feeding the transmitter with audio from the right studio at the right time), as well as doing the processing for the online stream.

It is programmed using a (free) program called London Architect.  This program allows you to build up the configuration of the device by providing you with all the building blocks you need (source selectors, mixers, EQ, compressors, limiters to name but a few) and lets you join them up in any way you can imagine.  It’s quite reminiscent of LabView, except for audio – to give you an idea.  You can then send it the configuration over the network, and tweak the values using the same program.  It’s pretty intuitive, and an extremely powerful tool.

Continue reading “I <3 Soundweb London”

Unnecessary Maths: My Milkshakes Bring Over a Million Boys to the Yard


Canterbury is home to the Shake Shed, an awesome little shop that sells delicious milkshakes.  They will make you a shake with anything from chocolate chip cookies to sherbert lemon, to strawberry jam to Star mix – and you can have up to 3 flavours.  Not only that, they’ll do it with a smile!

One day I was walking past and saw a sign outside, boastfully promising that there’s over a million different milkshakes to choose from.  I wondered – is it actually over a million?

Continue reading “Unnecessary Maths: My Milkshakes Bring Over a Million Boys to the Yard”

Unnecessary Maths: McDonalds Marketing

So I was in McDonalds today (lets not go into why) and found a piece of marketing that included some numbers. It said

McDonald’s Litter patrols cover over 120,000 miles every year in the UK and Ireland. We are about the environment!

(or something to that effect)

I decided to break this down a bit. After doing a bit of research I found that there were 1,200 restaurants in the UK and Ireland (60% of which are franchisees). So, that makes each store cover 100 miles per year. Divide that by 365 and we get 0.2739 miles per day covered in each day. That’s about 440 meters every day.

Consider also that this is covered by presumably more than one person, and performed more than once a day.  Lets say for arguments sake that on average, there are 2 patrols every day.  So we cut out 440m in half to 220m.

The problem with this is it is a linear distance. This tells us little about how much area is actually covered by the litter patrols.

The actual distance travelled is dependant on the location of the restaurant.  If the restaurant is on a long street, then the distance travelled in each run would be approximately 4x the radius.  If it were located somewhere with more complex roads and alleys, this would be substantially more.  However, we can at least agree on that the distance travelled in one patrol is at least 4 times the furthest away that they get from the store.

So, we divide our 220m by 4.  That means that, roughly, the litter patrols go about 50m either side of the front door, twice a day

Now you break it down, it down I wonder why that sounds impressive.

 

I suppose if you inflate any number enough, it can seem impressive.  For example, my heart has beaten over 58026240000 times since I was born.  Wow!  And it never stopped once!  (well, not for very long anyway).  You’ve probably farted about 456.25 liters of gas in the last year.  Lets say that’s mostly air… that’s over 500g of farts!  And 16g of CO2.  I wonder how much of the UK’s CO2 emissions due to farts is generated by McDonalds employees going on litter patrols…

 

CSR FM Tech Blog

So, I decided that CSR Technical Services needed a blog. So now it does! Here’s a copy of my first post there, about the recent issues we’ve had with the Station Switcher

Here at CSR, we have a number of different places which we might want to broadcast from.  For example, we have two studios (Studio 1 at the University of Kent, Studio 2 at Christ Church University) a sustainer service and we often perform Outside Broadcasts which require taking a signal from another source again.

Therefore, we have an airchain which includes a station switcher (specifically two Sonifex Redbox OA3 daisychained together to give us 5 possible audio sources).  In order to allow presenters to switch the station output between the sustainer service and the studio output, we provide two buttons – offer and accept.  The station switcher allows the operator of a studio to “offer” to take control from other studios, and “accept” control for other studios.  The sustainer, since there is no human present, cannot offer to take control – therefore a special case is given whereby the studios may force it to take control by holding the offer button then pressing accept.

The buttons (and indicator lights) are connected to the station switcher via a D-sub connector, which goes into a control interface. This is fine – however we wanted to be able to control the switcher from within Engineering where the switcher is located.  Thus, many years ago, one of the Tech crew built a 2U rackmount box which allowed us to “press” the offer and accept buttons remotely.  It essentially consisted of a box with a bunch of push to make buttons mounted on the front panel.

However, there was one slight issue – Studio 2 is at a remote site, and obviously we can’t run a piece of wire from the buttons half way across Canterbury to the switcher!  Therefore, we made use of the remote GPIO pins on the MDO STL-IP units which we use to transport audio to and from Studio 2.  This allows us to send digital signals (i.e. high or low) over IP – we connected up a switch box at Studio 2, plumbed this into the GPIO ports which were replicated up at Kent.  However, the signals which came from the STL-IP unit were not the same as the ones required by the switcher.  Therefore, in our custom made box we had to build some level shifting circuitry which converted the levels to ones which the switcher could accept.

This circuit was built on veroboard, and looked a lot like this:

The chip at the bottom is a octal darlington array, the one at the top a hex inverter. This successfully shifts the level, and everything worked perfectly for the time which we had Studio 2 online.

This all worked just fine up until recently – however when we took out the STL-IP boxes for maintainance we discovered a slight flaw.  Since the STL-IP box was disconnected, the inputs on the CMOS inverter were floating.  This caused the control signals to the switcher to fluctuate wildly – this in turn caused the switcher to constantly give Studio 2 control of the switcher!  This was not good (thankfully we have backups in place to prevent this being a showstopping problem).

The solution: attack the insides of the switch box with a hacksaw, remove the circuit, and disconnect it permenantly.  Now, it shall never bother us again.

Until we need to work out how to remotely put Studio 2 on air.