

I don’t know about you, but I’m a little sick of hearing about the same people on TV over and over again. I came up with this Arduino-based solution to mute my TV so that I don’t have to hear about Donald Trump’s feud with whomever or Charlie Sheen’s most recent rant. Using the Video Experimenter Shield, the Arduino is able to decode the closed captioning transcription track, which is transmitted along with the NTSC picture signal. The incoming text is processed for a set of keywords such as “KARDASHIAN” or “SNOOKI” and sends my television’s IR remote control mute command, muting the TV for 30 seconds and then unmuting it (as long as a keyword isn’t mentioned again).
The code for The Enough Already is a mashup of the closed captioning example code for the Video Experimenter Shield and Ladyada’s infrared tutorial. I added a few lines of my own code to search for the keywords and mute and unmute the TV at the right times. Now I’m curious to know: what keywords would you use in your own version of this project? And how might you use closed captioning data or IR in your project? How about a TV drinking game light? Or perhaps a flashing beacon light that’s activated when a keyword you do want to hear about is mentioned on TV?
Subscribe to the MAKE Podcast in iTunes, download the m4v video directly, or watch it on YouTube and Vimeo.
In the Maker Shed:
111 thoughts on “Enough Already: The Arduino Solution to Overexposed Celebs”
Comments are closed.
Yeah I want one. This is by far the best project ive seen you do yet.
Yeah I want one. This is by far the best project ive seen you do yet.
Does the CC stream contain any kind of marker for indicating commercials? Because I’d tweak this in a heartbeat to mute the deliberately-louder commercials that seem all the rage these days.
I was thinking the same, so i can leave the TV on at night, and mute those animal abuse commercials with sound clips of animals getting beat , it really scares my cat. Also the ones with old ladies falling and screaming help.
Yeah, I have nightmares whenever I hear Sarah McLaughlin because of those animal abuse commercials…
Yeah, I have nightmares whenever I hear Sarah McLaughlin because of those animal abuse commercials…
Dude, that’s pretty dope. Great project and video!
This is awesome. :)
This is awesome. :)
This is awesome. :)
This is exactly like the ‘Adnix’ and ‘Preachnix’ products in Carl Sagan’s novel “Contact.” In the book they topple the advertising industry and fund the vast fortune of an eccentric engineer- good luck with that!
Crap, I forgot about those things. Since you brought up the book (and not the damned movie), a question. He shows off the alien technology as being challenged as a hoax: that its some conspiracy of scientists. At the end, the US faction (because there was a team of pilots in the book) locks up their gal for life at an observatory; meanwhile, parts from the “fake alien machine” are accepted into everyday industrial use. Given this was the 1980s, I think he was being prescient: you could replace “fake alien machine” with “climate change”, and “alien parts” with windmills, hybrid cars, and LED lighting. I know people that think climate change is a “liberal myth”, but also use whatever they can that saves them money.
This is exactly like the ‘Adnix’ and ‘Preachnix’ products in Carl Sagan’s novel “Contact.” In the book they topple the advertising industry and fund the vast fortune of an eccentric engineer- good luck with that!
This is exactly like the ‘Adnix’ and ‘Preachnix’ products in Carl Sagan’s novel “Contact.” In the book they topple the advertising industry and fund the vast fortune of an eccentric engineer- good luck with that!
Agreed – this is an amazing project, an amazing idea, and @twitter-17106488:disqus is right that the video is nicely done as well (great lighting and use of depth of field!). Thanks for posting.
PS> I second the request to see if this can in any way be used to automatically be used to mute commercials. (I generally use my dvr to skip commercials but occasionally when watching the news this would be a terrific feature!)
Unfortunately (as shown in the video) the CC stream is usually ~3 seconds behind the actual audio so you still have to hear the name at least once.
It might work better for pre-captioned shows, but in that case it should be much easier to avoid the celebs.
I would like to see it do the opposite. Give the device a list of keywords to pay attention to and then to unmute the TV when those keywords are discovered. Could be good for a “News Wall” of TV’s… All silent until one of them says a keyword like “bombing” or the company name of a stock you’re interested in.
Then you could monitor 10 news channels at once without all the difficulty of listening to all 10 at the same time.
It sounds like the code can be easily modified to do this. It’s just Inverting the logic so a black list becomes a white list, and switching the IR commands.
Try muting your TV then turning this thing on. This thing looks like it is just a toggle so it should work in reverse if you watch TV on mute.
You could use the remote’s power button code instead of mute, so your TV will get switched on only if your keyword is said.
Edit: Accidentally commented twice.
And now thrice!
I had a VCR that would do this for profanity. The problem is the filter wasn’t adjustable so it would mute important lines of dialog over fairly minor words. If you were serious about filtering profanity you’d want a device that would also display the subtitles during the muted dialog with the profanity substituted with something like dashes or hash marks. That might be too technically difficult though.
I had a VCR that would do this for profanity. The problem is the filter wasn’t adjustable so it would mute important lines of dialog over fairly minor words. If you were serious about filtering profanity you’d want a device that would also display the subtitles during the muted dialog with the profanity substituted with something like dashes or hash marks. That might be too technically difficult though.
Everytime the adverts come on the TV mutes until the programme comes back on!
Everytime the adverts come on the TV mutes until the programme comes back on!
Everytime the adverts come on the TV mutes until the programme comes back on!
Great project Matt!
You could generate the list of keywords dynamically. E.g. By monitoring Twitter’s trending topics or by parsing Google’s zeitgeist lists.
I love that idea! Maybe in v2.0? (I’ll give you credit for the idea!)
Cool project and cool idea :) But… do you really talk like that to real people? I would prolly punch you after about 10 seconds of that.
This is an amazing invention you would become a multi billionaire very very quickly if u market it! http://wp.me/pUSBH-25
This is an amazing invention you would become a multi billionaire very very quickly if u market it! http://wp.me/pUSBH-25
Great project. Very useful and golds a lot of potential.
few ideas:
1. inserting music or text-to-speech of interesting subjects in periods of silence.
there are arduino shields for MP3 , text-to-speech.
2. measure and show/tweet/put-on-website how much crap you or other people avoided.
3. it could tie nicely to self-tracking – tracking feelings , thoughts , behavior – in relation to the words you hear from the tv.
4. avoiding negative stuff using sentiment analysis.
5. avoiding advertisements using email spam filtering of captions, or other machine learning stuff.
To do all this stuff, and maybe get some help from others doing it , i think you should connect this device to a simple python script running on a pc , and make it very simple to make a working device and change the pc script.
this would be nice in “android smart tv” when it comes out
Sweet baby jesus, YES~!
Interesting idea, and admirable execution, but wouldn’t it be easier to just not waste your time staring at a television screen in the first place? I mean, think of all the awesome stuff you could accomplish if you put your efforts into something more meaningful than filtering celebrity drivel out of the overwhelming ocean of drivel that is TV itself…
Dear Matt,
I read with great interest the article in ‘Make ‘about your efforts to are making to protect TV viewers against unpleasant moments on screen.
In the same line of thought, I would like to ask your attention for a very annoying aspect of TV viewing in Europe and my suggestion is that you might be interested to apply our concept to resolve this.
Every time a TV program is interrupted for advertisements or the like, the sound level of the tv set goes up considerably to catch attention. My understanding is that the increase in soundlevels obtained by a temporarily compression of the incoming signal. Here is the suggestion: to put a kind of magic box in the areal leading to the set where compression of the signal is detected. As soon as this happens, the signal should be weakened by say 10 dB, and return to normal when the signal is not compressed any more.
I am quite sure that there would be a market in Europe, and perhaps also in the USA, for this kind of add-on.
Let me know if you go ahead with this suggestion and I will follow developments with interest.
Sincerely
Robert W Mantovan
The Netherlands
Actually, I thought there was a recent law passed here in the States that prohibited the practice of pushing commercials at a higher decibel rate than the regular programming. What this would be cool for is pushing out, say a text notification to my cell phone via text (Yeah, I know, the complexity of the device goes way up for that) when a keyword is found. Would be a nice way to know that something I may want to watch is on TV at the moment. Problem is, unless I miss my guess, is that this device can only keep an eye on the currently-tuned channel. Would be nice, if you’re actually *looking* for a keyword in the CC text if the device could monitor all of the channels.
That law is largely ignored.
Mr. Kendall: The C.A.L.M. Act gives the FCC until December 15, 2011 to create and adopt rules by which the C.A.L.M. Act will be enforced. One year following the date on which the FCC’s C.A.L.M. Act regulations are adopted, TV broadcasters,
including all standard, cable and satellite broadcasters, will be required to comply with the regulations. So, you can expect the law to go into effect somewhere around the end of 2012. Until then, you are correct … the law is largely being ignored … except by those who are still working on finalizing it.
…he law is largely being ignored… No it isn’t – Most TV broadcasters already have the stuff in place to limit the noise level. Bigger deal is that the networks don’t like it and are keeping the stations from using the hardware on network feeds.
Wonderful project i like this very much..
how to video
Wonderful project i like this very much..
how to video
very cool Idea and great execution.Just a friendly warning about using this line: if ((muted) && (millis() > muteUntil))millis() wraps back to 0 on overflow after about 49.7 days (because it has a type of “long”). So IF Kim Kardashian is Interviewed by Charlie Sheen on the Apprentice after your device has been on on for about 49.6999 days there could potentially be a bug that could leave your tv muted. I ran into a similar problem with my Baby Interface Device (http://matthewroy.com/bid/ ) which a user named “jeff jacobs” gratiously corrected for me.
You’re right. The actual code has a comment that lists handling the rollover as a “to-do.” I redacted it in the video for sake of simplicity.
You’re right. The actual code has a comment that lists handling the rollover as a “to-do.” I redacted it in the video for sake of simplicity.
You’re right. The actual code has a comment that lists handling the rollover as a “to-do.” I redacted it in the video for sake of simplicity.
You’re right. The actual code has a comment that lists handling the rollover as a “to-do.” I redacted it in the video for sake of simplicity.
You’re right. The actual code has a comment that lists handling the rollover as a “to-do.” I redacted it in the video for sake of simplicity.
Here is a crazy idea that I think is even easier and cheaper than ‘Enough Already’…. watch less TV. There’s this new thing called reality. It is where you can play sports, walk, and interact with other “humans”. Try it.
Here is a crazy idea that I think is even easier and cheaper than ‘Enough Already’…. watch less TV. There’s this new thing called reality. It is where you can play sports, walk, and interact with other “humans”. Try it.
This is a great idea. I would really like to see something using the Arduino that could mute commercials. Since most commercials don’t have closed captioning, I’m sure that the loss of a stream could possibly be used to do this.
Where do I purchase and how long to get it to my house? I have DREAMED of one of these for a VERY LONG time! HAHAHAHAHA
Where do I purchase and how long to get it to my house? I have DREAMED of this for a VERY LONG TIME! HAHAHAHAHA
Where do I purchase and how long to get it to my house? I have DREAMED of this for a VERY LONG TIME! HAHAHAHAHA
Where do I purchase and how long to get it to my house? I have DREAMED of this for a VERY LONG TIME! HAHAHAHAHA
And it got mentioned in an online article of Germany’s main TV news show: http://www.tagesschau.de/schlusslicht/kisteaus100.html
Nice! Thanks for sharing, Simon!
Nice! Thanks for sharing, Simon!
I remember a friend of mine about 15 years ago telling me of a fellow who built a device that did the exact same thing as the Enough Already, he built it using one of the first PIC controller chips that came out on the market. He programmed it to mute the TV whenever the words “OJ Simpson” were in the CC data (giving you an idea of how long ago he built it :) ).
This is interesting. But I’m looking for something that eliminates the graphics that all stations use to advertise upcoming shows and the like. I just want to watch a clean screen so to speak. There must be something like that, No?
The “crawl” of which you speak is integrated into the broadcast stream. The only place it can be removed is at the workstation where the source video is overlayed with the “crawl” container and various broadcast graphics …. by not performing the overlay, at all. The reason this article’s device can work is because the CC feed is not embedded into the main video feed … they are two separate feeds. The text of the CC feed can easily be discerned because it’s not being obscured by all of the binary video data.
I was afraid of that. Thanks for the explanation though.
jcris
The “crawl” of which you speak is integrated into the broadcast stream. The only place it can be removed is at the workstation where the source video is overlayed with the “crawl” container and various broadcast graphics …. by not performing the overlay, at all. The reason this article’s device can work is because the CC feed is not embedded into the main video feed … they are two separate feeds. The text of the CC feed can easily be discerned because it’s not being obscured by all of the binary video data.
would love to see this shield put to use to make a ambilight system!!! maybe combined with the dioder kit from ikea :)
Back in my college days we had a drinking game based on the Bob Newhart Show. Every time someone said his name (Bob) everyone had to take a shot and if they said Robert (usu. only his Dad) it was a 2 shots deal. You’d get rather toasted before first commercial so it tended to end there.
So monitor the feed for ‘Bob” and then sound off a buzzer or bell circuit instead of IR LED. Have simple box with bell/light or ????.
Back in my college days we had a drinking game based on the Bob Newhart Show. Every time someone said his name (Bob) everyone had to take a shot and if they said Robert (usu. only his Dad) it was a 2 shots deal. You’d get rather toasted before first commercial so it tended to end there.
So monitor the feed for ‘Bob” and then sound off a buzzer or bell circuit instead of IR LED. Have simple box with bell/light or ????.
Matt,
Next time a news agency asks when it is available for purchase, tell them it is “Available Now*” (*some assembly required) and send them to the MakerShed.
You can also tell them that it was invented with an open architecture to leverage the wisdom of crowds through a cloud based community of the best minds in the world. They eat up that sort of buzzword speak.Also it is fully customizeable and easily expanded requiring a minimum of training and full 24/7 support.
Even if CNN doesn’t pick up the story, I’m telling all my friends about it. Great project. I love the podcast. Keep up the great work.
I cannot compile the code. every time I do I get this
enoughalready:58: error: expected initializer before numeric constantenoughalready.cpp: In function ‘void loop()’:enoughalready:197: error: ‘muteTime’ was not declared in this scope
Thanks for pointing this out! I made a last minute change before uploading the code and neglected to check it over. I’ve updated the code. The declaration of muteTime on line 59 should be “long muteTime = 30000;”
I cannot compile the code you referenced. I get errors see below. What version of arduino did you use to compile it?
enoughalready:58: error: expected initializer before numeric constantenoughalready.cpp: In function ‘void loop()’:enoughalready:197: error: ‘muteTime’ was not declared in this scopeException in thread “Thread-6” java.lang.NullPointerException at processing.app.syntax.TokenMarker.addToken(TokenMarker.java:295) at processing.app.syntax.CTokenMarker.markTokensImpl(CTokenMarker.java:121) at processing.app.syntax.TokenMarker.markTokens(TokenMarker.java:52) at processing.app.syntax.JEditTextArea._offsetToX(JEditTextArea.java:549) at processing.app.syntax.JEditTextArea.scrollTo(JEditTextArea.java:463) at processing.app.syntax.JEditTextArea.scrollToCaret(JEditTextArea.java:428) at processing.app.syntax.JEditTextArea.select(JEditTextArea.java:1193) at processing.app.Editor.statusError(Editor.java:2517) at processing.app.Editor$DefaultRunHandler.run(Editor.java:1836) at java.lang.Thread.run(Thread.java:619)
The error is telling you that there’s something wrong with the muteTime declaration on line 59. The line should be “long muteTime = 30000;” In the original code, I left out the equals sign but it has since been updated in Google Code. Mine compiles in Arduino 022.
Thanks for the reply. That got me past compiling. OK so you figured me out, I am a noob to arduino so I need a little help. I have designed and built many circuits but I am a little confused about a few things with this. Does the USB have enough power to power this circuit or do I need external power? I see no overlay and I suspect I ma falling on the shy side with power. What about the jumper and switch? I am on VSync and overlay. Is that correct? This is really cool and I really want to get it working and not have it collect dust.
Thanks for the reply. That got me past compiling. OK so you figured me out, I am a noob to arduino so I need a little help. I have designed and built many circuits but I am a little confused about a few things with this. Does the USB have enough power to power this circuit or do I need external power? I see no overlay and I suspect I ma falling on the shy side with power. What about the jumper and switch? I am on VSync and overlay. Is that correct? This is really cool and I really want to get it working and not have it collect dust.
The power from USB is enough and you’ll need the switch on overlay to get it working. Have you already worked through the Video Experimenter Shield’s closed captioning tutorial? Getting that working is the first step: http://nootropicdesign.com/projectlab/2011/03/20/decoding-closed-captioning/
Matt,
I think i FOUND THE PROBLEM.I am using Windows Media Center with LinkSys Media Extenders. Apparently the CC info is either not there all together or just not where we ex[pect it. The Media Center Extender has CC functionality but it does not mean it is passing it through. My big indicator was the CC does not work on the TV. Any idea how to isolate the various lones and look at them with an OSCOPE?
My wife came up with an idea months ago, now you have given me the direction to finish it. Thanks Matt, no good dead goes un-punished. ;)
And the Nobel Peace prize goes to…. LOVE THE IDEA
And the Nobel Peace prize goes to…. LOVE THE IDEA
And the Nobel Peace prize goes to…. LOVE THE IDEA
I’d mute sports. Sorry sports fans…I just don’t care about any of it. Then I’d mute those abused pet commercials with Sarah McGloflin that always make me feel guilty/ cry. And I’d also mute all reality shows except Project Runway and The Dog Whisperer.
Actually…I might use this to turn the TV off….I could put this on my Dad’s TV just to mess with him…He’d turn the TV on…the keyword would happen, the TV turns itself off…He’d turn it back on…the TV would go off again…
*evil grin* Nah…maybe that’s mean…
Great idea, some decades too late…
The main problem is that the TV, is a dying concept. Especially now when most tv stations are streaming most of their material online – usually for free.
But, there is one area where it could be very useful… If it could “scan” several channels for keywords and then switch to the one most relevant.
This way you could watch one of the several music channels (MTV, VH1 etc), and when a more relevant artist comes up it switches over (or gives a suggestion). Same way annoying artists could be blocked out.
Fantastic! Would drive my daughters crazy; but I’ve given up TV because of this.
I don’t have Electronic Engineering degree so don’t know if I have listed all parts below. Also, “Matt Richarson”‘s video talk about two Potentiometer (one with a tip on top and other other is used with phillips screw driver I guess). On adafruit I can see this https://www.adafruit.com/products/356 or you can search for item number “356”. Do I buy two of these ? or one of this and something else that works with screw driver ? Here’s a list of items I’ll need for the project. Let me know if I am missing anything.
1. Adruino Uno (Amazon)2. Video Experimenter Kit (nootropicdesign.com) (Parts OR Assembled)3. RCA Video Cable4. Two Potentiometer (Adafruit) (1K or 10K ?)5. IR LED (Adafruit)6. IR Sensor for reading remote codes (Adafruit)
7. Whole bunch of code from nootropicdesign/Ladyada + Adruino IDE
Please help.
The pots are included with the Video Experimenter kit. Everything else looks good.
Matt Richardson,
Where can I find information about Closed Captioning(CC) “Code” when Advertisement begins (or when Program ends) and when Advertisement ends (or when Program begins again). What do I search for in CC ? I am sure there must be something that I can capture to MUTE TV automatically when Advertisement begins and ends. I Googled but could not find satisfactory result.
Once I am done with this Advertisement muting project, I am planning to read Gmail subjects of “new emails” and display on TV every 15-30 mins using Video Experimenter kit (overlay).
Other project I can think of is calculating the amount of time family spends watching TV daily OR playing Game on TV (PS3 / XBOX etc). Is there a way to find if TV is used for watching TV or for playing Game or for watching DVD etc ? Is there a code we can capture from TV itself ? When I say “code”, I mean some hash tag etc.
Looking forward to work on these projects. Just need little help pointing in the right direction.
Thanks.
I don’t have Electronic Engineering degree so don’t know if I have listed all parts below. Also, “Matt Richarson”‘s video talk about two Potentiometer (one with a tip on top and other other is used with phillips screw driver I guess). On adafruit I can see this https://www.adafruit.com/products/356 or you can search for item number “356”. Do I buy two of these ? or one of this and something else that works with screw driver ? Here’s a list of items I’ll need for the project. Let me know if I am missing anything.
1. Adruino Uno (Amazon)2. Video Experimenter Kit (nootropicdesign.com) (Parts OR Assembled)3. RCA Video Cable4. Two Potentiometer (Adafruit) (1K or 10K ?)5. IR LED (Adafruit)6. IR Sensor for reading remote codes (Adafruit)
7. Whole bunch of code from nootropicdesign/Ladyada + Adruino IDE
Please help.
Do I need 1K or 10K Potentiometer ?
Do I need 1K or 10K Potentiometer ?
Need help with sketch lines 36,37 reading:
// TiVo, DVD player byte bpos[][8] = {{26, 32, 38, 45, 51, 58, 64, 70}, {78, 83, 89, 96, 102, 109, 115, 121}};What are these number an where do I get them for the TV se I’m using if I need them all. I thnk I know how to get the code for the muting command but this one is ne to me.Help pleaseThanks
That code comes from Nootropic Design’s closed captioning example. Lines 37 and 39 go hand-in-hand. One must be uncommented (remove the “//”) depending on what video source you’re using. Try each one out. The closed captioning project walks you through all of this: http://nootropicdesign.com/projectlab/2011/03/20/decoding-closed-captioning/ If it still doesn’t work, check in with the forum at Nootropic Design.
Thanks Matt for the clarificatio.I would imagine TIVO/DVD vould apply to any DVR for instance I have a comcast bos with DVR. Your video elicited an interest I always had in automatically fast forwarding my DVR as soon a commercial starts and keep checking until the commercial ends to resume watching the show of interest.
I am not much of a C programmer and was wondering if you could suggest some code lines to fast forward a DVR, vs detecting names as your video does. Of course I will be getting the FF code of my DVR using the Ladyada IR detector tutorial..
Thanks
PS: I read your PhD thesis referred to in your bio, and was fascinated by the mathematical and statistical modeling of human and social behaviour and trends. Great job.
A lot of people have expressed interested in a method to skip or mute commercials using this project, but I have yet to see a method to detect commercials reliably. I would say to do away with the closed captioning part of the project and use Ladyada’s IR tutorial only so that when you press a button it sends the fast forward command and then the play command after the right amount of time to skip your average commercial break.
As for the thesis you read, I’m glad you liked it, but that must’ve been written by a different Matt Richardson!
Amazing tutorial!
Matt- Great stuff!
Ive got a project that I think you’d be perfect for. Please contact me and I’ll let you know what is is about.
Thanks!
Great! I was asking in a spanish forum for something like this and got a link about this tutorial, I see the need of a devicce like this, I wolud buy i t, and a lot of people too!
What I wanted was to CHANGE the channel instead of muting the TV, and come back when commercials finnished…
I feel a very little push is needed to accomplish that device in a “1.0 state”, 2.0 could track all the channels and only show relevant info, etc
Saludos desde Argentina
Guille
WOW just what I was looking for. Came here by searching for arduino
I think Robert Heinlein wins the predictive prize on this one–he has characters using a feature like this in his “Methuselah’s Children,” 1958.
Thank you! I have been looking for a good IR tutorial for awhile so I could do this: http://www.youtube.com/watch?v=4Eg_EzdcESg
DEAR MATT,
i’ve watched your video and i’m very impressed by the project you took of muting tv.
i would like you to calliberate it for slangs,bad comments etc. and sell them to the indian tv market.this will work surely.do get me know your remarks…..at
surana.anshul@gmail.com.
Make this computer log the text to a storage device and throw away your TV altogether.
Nice! Thanks for sharing, Simon!
Great tool to have. I can’t stand some of the commercials that repeat daily, seems like every hour.
Anyway, just wondering what version of TVOut library you used. Nootropic mentions something about some “extended” version of TVOut
nice articles
good articles
thank you for share!
Very cool! I like the things you are doing with the Arduino.
Cialis , Abilify , “Ask your doctor” = Mute
Your code isn’t overflow safe.
Timeouts should be
eventTime = get Time()
And if (get Time() – eventTime >= timeout)
Your current code will only last about 25 days for millisecond timer and a signed 32bit int