If you’re having a hard time tuning out those loud commercials why not let your electronics project do it for you? This is an Arduino-based setup which adjusts television volume when it goes above a certain threshold. It uses a microphone, rather than a direct audio signal, so you can set it based on what is actually heard in the room.
The control scheme uses the IR LED and IR receiver seen on the breadboarded circuit above. The receiver lets you teach your volume up and down buttons from your remote control to the system. The one failing we see in the design is that the volume level is hard-coded, requiring you to flash new code to make adjustments (perhaps an enterprising reader could add a potentiometer for making easy adjustments?).
We can’t help but be reminded of the setup which reads the closed caption info to mute topics you’ve added to a blacklist.
I think it would be much nicer to “teach” the system by taking volume samples for a few minutes. If the volume then suddenly goes above that threshold it should lower. Then you might get a nicer transition on any volume lever.
There’s a sneaky trick that TV commercials use called compression, which is exactly the same they use to make CDs louder without actually making the volume go higher, because they’re already turning it to 11.
It’s basically blasting you with a wall of sound where every sound from the smallest to the loudest is boosted up to the maximum level allowed by standards bodies that dictate how much louder the TV commercials can be. So instead of one sound that occasionally peaks at 75 dB you get a constant cacophony of sounds all at exactly the maximum allowed amplitude, and it also handily bypasses any naive sound level measuring system because it doesn’t actually increase the amplitude of the signal – it just makes it constantly that loud at every possible frequency they have.
So then the solution is to take a “naive sound level measuring system”, and add a modulation (density) detector. Determine a normalization curve based on modulation percentage (i.e., if your target is 60% modulation at line level (600mV/10kOhms) , then 100% modulation might require line level being attenuated to, say, 475mV, or whatever…, with the intermediate values tracing a curve correlating with listener comfort). Allow for that curve to be adjusted until you find a best ratio of comfort to audible detectability (can you tell that the level has been dropped/raised? if so, you’re changing it to rapidly or going in steps that are too coarse). Do this with an in-line circuit. Then, use the microphone sampled circuit described in the article for fine control that’s most similar to what you’re actually hearing. Compression isn’t any particular challenge to deal with once you get a grasp of what its behaviors are. :-)
It’s too bad, the permanent fix is already out…
http://en.wikipedia.org/wiki/Commercial_Advertisement_Loudness_Mitigation_Act
Regrettably, this is not the case is most countries.
US companies normally ignore laws until the penalty is severe. The penalty is not severe yet and many US companies are ignoring this law. Today 2014, February, I hear loud ad by GEICO on Colbert Report and I hear loud ad by Charter on Youtube.com. I sometimes call these companies, GEICO and Charter and tell them that I am boycotting their products. If everyone boycotted the loud companies, they would change their ways.
It is supposed to be law now in the US that this won’t happen anymore, yeah right. What about ads during a golf game. (he putts……birdie) now for our sponsors who know how to MODULATE for a full delivery in a voiceover. The only thing needing regulating is the max level to FCC specs. Compression to one boring constant volume level is what is left in the volume wars. What would a war flic be without bang. We did have several cable channels that had low audio consistently, the local insert ads were at full level. The main gripe here is poor level of the program.
Mute and power off are the two must-use buttons of broadcast TV.
An interesting effect of this project would quell the sports scoring orgasms in the room, I wish I had this growing up.
I recall years ago one of the electronics hobbyist magazine had a project that muted the audio during a commercial. I can’t recall it actually determined the beginning, and of the commercial. I do want to think it was a momentary blanking of the screen, but I’m not sure. Whatever it was most likely it wouldn’t work in the digital era.
Sure, the networks send tones down to the local stations to tell them where to insert commercials into the broadcast. Same as national radio broadcasts, sometimes you hear the tones slip through, sometimes not. But the artifact that caused the commercial to start is in there.
I remember using gb-pvr to record TV shows and then automatically remove commercials using some plugin. It worked flawlessly. Could this be done in realtime to black the screen or perhaps just mute when a commercial is detected? I recall the plugin taking cues from the cuts between commercials and the actual program. I can’t recall the plugin’s name though :P
Tim are you able to email me about this thought?
You don’t need to reprogram a different volume level, just move it further away from the TV.
What you may need is a way to turn the volume back up after the ad break.
Very interesting project. But I actually have something else in mind. Instead of lowering the volume base on noise, I wish it can raise the volume base on ambient noise. One example is the volume inside a vehicle, if the road is noisy, crank up the volume. Otherwise, lower it.
That’s a bit ill adviced though, because you’ll easily damage your hearing that way.
Actually a NIce project, i want more light on this topic so that i can use it in my Mini project
@HackJack My Car was built in the year 2000 and is a stock economy model, yet it’s radio has that functionality built in.
@chic I’m betting it actually adjusts volume in response to engine RPM or speed.
No way such metrics would be involved. This functionality was available on high end Pioneer car stereos decades ago.
You can easily modify my gadget to do this. You can also limit how high the audio level can get.
Did you actually find something that could do this function?
Hi Mike, Thanks for sharing my project. Following up on your suggestion, one thing I should have mentioned is that the sound sensor I am using from Seeed Studio already has a built in pot to control the sensor’s sensitivity. http://www.seeedstudio.com/depot/grove-sound-sensor-p-752.html
i thought there was a law in place to do the same things
People still watch television in realtime with ad’s – how quaint (and mind numbing).
Many TVs for the last decade or so have a built in AVL- automatic volume leveling setting, but honestly I never heard of one that actually worked. I honestly do not see how this version could be any better.
LG’s version in their smart tv’s works great. the very rare times we watch TV that has commercials, it actually seems to make the commercials quieter.
I don’t see why you would need this- none of the shows on The Pirate Bay have commercials.
Is there some other ad-supported method of obtaining TV programs that I don’t know about?
Automatic volume control? You mean like a compressor? http://en.wikipedia.org/wiki/Dynamic_range_compression
The I’ve thought about this, but the issue is that most people use HDMI for everything now and digging the audio channel out of that to pipe to an outboard compressor and then putting it back in would be a chore… For a while i used the TOSLINK out on my set top box into a DA converter, into a recording studio compressor, into a AD converter into the TOSLINK on my receiver. I managed to rig it up from spare parts in my recording studio, not a hacker/budget friendly solution to say the least.
Ive seen some perl scripts that analyze the level to which the audio is compressed, mostly used to critique the current state of the music industry. If there was a way to reliably identify highly compressed signals you could use that to know when commercials are playing. Then you could either turn down the audio or jump ahead on the dvr until the mega compression stops.
The law doesn’t stop them from compressing, it just limits the max volume, the obnoxiousness and the ear strain come from the fact that EVERYTHING is the same volume.
..end rant.
I think it’s rude when people don’t take the time to read prior comments or visit the project page before asking questions or making assumptions that have already been addressed.
Just switch of those damn brainwash-machines and everything is fine…
or at least put an unused laptop with wireless mouse and keyboard at it…
Even without commercials this has great potential.
I can’t tell you how many times I’ve been watching a movie, have to turn it up because I can’t hear the conversation then BOOM, jump to loud action scene. Turn it back down and repeat cycle for 90 minutes.
Did a project with a raspberry pi sampling the audio stream with a input on an usb soundcard, sending it to a server doing ffi and matching up against known commercials and returning a false or true, which made the rpi mute the sound output on the usb soundcard. It would then unmute the output again when the ffi failed to recognize a commercial. It actually worked very well however I do not have the patience to “learn” the system by recording and tagging all commercials.
I was recently at a supermarket, so they play some soothing music on the background when suddenly they do one of their ads for what’s on sale, and it’s much louder than the music.
I was WTF NO.. Not in supermarkets too .
Yes broadcasters are blatantly violation the Law that was put in effect in Feb.2011 . Comcast makes it worse as they lower broadcast volume , so you will raise your volume level to hear the show , then when the Commercials come on , you’re already way above normal decibels and you get blasted out of your chair .I’ve complained to the FCC for the past 3 years about this and NOTHING has been done .