The Hero Dies in This One

Solving Thunderbolt, HDMI and audio system conflicts

I’ve had a lot of problems lately when connecting my (2011) Macbook Pro to my Sony Bravia using a Mini DisplayPort to HDMI cable (or using an mDP-HDMI adapter and an HDMI cable, didn’t make a difference).

Things used to work just fine until I bought a sound system (Yamaha YHT-S401, very recommended) to get proper sound (modern TVs, getting ever flatter, have speakers built in that, due to physical limitations, produce sound of ridiculously bad quality).

This sound system’s receiver supports

  1. HDMI ARC: Audio Return Channel, meaning that sound from the TV - both tuner and external inputs - are routed to the receiver using an HDMI connection, no separate optical cable necessary);
  2. HDMI CEC: device remote control, letting me control volume of the receiver using the TV remote and switching the receiver on and off together automatically with the TV (this is often branded Bravia Sync, VIERA Link, Anynet+ and so forth depending on the TV manufacturer).

Which worked well, until I plugged in the MBP. Something about the Thunderbolt connection messed up the entire HDMI device chain, causing the Bravia to report “TV Speakers active due to Audio System communication failure” and indeed falling back to built-in speakers, with no way of even seeing the receiver or for instance my PS3 in a list of devices, until I disconnected the MBP again.

Turns out there is a fix: remove or cover pin 13 (carrying the HDMI CEC signals) from your mDP-HDMI adapter or mDP-HDMI cable (in the latter case, remember that the pinout is mirrored because such a cable ends with a plug and not a receptacle). Alternatively, convert from HDMI to DVI and back to HDMI using adapters and/or cables, that will also remove the HDMI CEC signals since DVI obviously doesn’t carry them but leave the audio intact since OS X sees an HDMI adapter as the first “hop”. Or, if you absolutely can’t be bothered, Pulse Eight sells a custom HDMI cable without the CEC wire, but it’s only 25 cm long, so you’ll likely need an additional extension cable.

Native Formula 1™ Live Timing on Mac OS X

I normally use the Live Timing feature on F1.com, but that requires Java and doesn’t look quite as kick ass as the “original” that the teams have on their pit lane command post monitors. Plus, you can’t have it use all of the available space on screen.

Luckily, a friend pointed me to Live F1, which is a Unix application that uses the same stream as the Java applet on the website, just without, well, the Java.

Time to compile it on OS X. This assumes you have Homebrew installed; if you are still using MacPorts or, god forbid, Fink, let me offer you my sincere condolences.

  1. Download the latest live-f1 release from https://launchpad.net/live-f1/+download
  2. Unpack it somewhere
  3. Fire up a Terminal and cd to that folder
  4. brew install pkg-config
  5. brew install neon
  6. NEON_LIBS="-L/usr/local/Cellar/neon/0.29.3/lib -lneon" NEON_CFLAGS="-I/usr/local/Cellar/neon/0.29.3/include/neon" ./configure (assuming you installed neon 0.29.3; if brew installed a newer version, adjust the path accordingly).
  7. make && make install
  8. Run live-f1 and enjoy. If that gives you “live-f1: insufficient lines on display”, increase the size of your Terminal window.