Wednesday, January 30, 2013

Colour perception - a couple of notes

Colour perception is a complicated business; most people have tristimulus vision - that is we perceive colour (broadly speaking) in reds, greens and blues. Your brain does the clever stuff of filling in the intermediate colours - if you're seeing a colour between red and green (yellow) the mix of stimulation of the red and green cones in your retina give you the sensation of yellow. 
Although I do a lot of colourimetry (calibrating monitors, racking cameras etc) I was unaware that some people are tetramats (they have four sets of distinct cone cells) - they are more sensitive to the colours between red and green (and hence the opposite of men who have red/green colour blindness). Interestingly they are always women and invariably the mothers of men who are red/green colourblind. Dutch scientist HL de Vries discovered this in 1948 - here is an article in Discover magazine.
Radio 4 have an interesting series of programmes about colour perception - Russian speakers are trained by their language to discern more hues of blue than the rest of us and Homer was probably colourblind!

You could also watch the podcast Hugh & I did.

Tuesday, January 22, 2013

EDID isn't the only thing that graphics cards look at.

Avid Media Composer insists on re-starting when it sees a change of monitor. I always assumed that it was done via Windows detecting a new EDID profile but it turns out that if you unplug and re-plug the same monitor (i.e. EXACTLY the same EDID data - even s/n) then the same happens and so something deeper is at work.
Look at pin-16; Hot Plug Detect. Basically it is held low by the graphics card but pulled high when a monitor connects - this generates an interrupt in Windows which forces the card to do an EDID refresh - request a new profile and possible re-do the HDCP handshaking if needed. The interrupt is also seen by Avid and used to force a re-start of Media Composer.

Now then, Amulet (our favorite KVM-over-IP technology) spoofs all of this; it caches the EDID profile until a new client connects and when that happens it asserts the Hot Plug Detect pin as if a monitor had been connected - essentially spoofing what happens in the real world. There are various registry tweaks to for the graphics driver to ignore pin-16 but they work variably - change driver and suddenly pin-16 is being listened to again.

When I figure out a solution I'll update this post. Meantime the customer's dream of starting off a layback or capture and then handing it off to another client is still on hold....

Tuesday, January 01, 2013

Dual Internet gateways and Apple TimeCapsule

I had a splendid New Years at a friends house but as ever it became a tech support visit! He has BT provided aDSL which is a long way from the exchange and consequently very poor throughput (typ. 250kBits/sec down and maybe 100 up). He'd invested in a satellite Internet service which although fast (typ. 20mBits/sec down) has terrible latency; typ. 2000mS which makes loading webpages very slow BUT means you can stream media (even the HD samples files from GoPro).
As an aside the satellite modem is just that; it has no NAT functionality or firewall; it exposes a proper, routable IP address (in the 37.x.y.z range).
So - his question to me was could he combine the two; use the aDSL for most things but force streamed media to come via the satellite modem? He has an AppleTV under his tele and so I thought it should be easily do'able. I think I've figured out a solution using only what he has, but I came across a few interesting things on the way. There "..oh, can you have a quick look" always turn into an afternoon's fun!
So, recap of the parts on the network;
  • Current model BT aDSL2 HomeHub
  • Current model Apple TimeCapsule (the 3TByte one)
  • Netgear GigE switch
  • Sitecom DVB-S satellite modem
  • iMac, various wireless devices, AppleTV, couple of PCs, network printer

I was worried about exposing the satelite's IP address to the network; that has to go behind a firewall or NAT router and the TimeCapsule has NAT built in - great; I imagined I'd just have a network with two internet gateways and for the AppleTV I'd point it at the TimeCapsule and the iMac (which is used to download films, TV etc) have two network configurations which you swap over manually; it's very easy in OS-X.

My first problem was when you turn on NAT in TimeCapsule it assumes it is the only DHCP server on your network and it tends to answer DHCP requests faster than the BT aDSL router; bit of a problem as the BT was meant to be the default gateway. The answer is brutally simple, actually. Just leave DHCP enabled on the Airport, but restrict the available IP range to just a single IP. Then use a DHCP Reservation to bind that IP to a MAC address that doesn't actually exist. The Airport will silently refuse to respond to DHCP requests since it thinks that it is out of addresses that can be assigned.
 The next problem is that the BT router's ARP table is tied to it's DHCP table; if the router gets requests from an IP address that it didn't serve then it refuses to route them to the outside world. You can switch the iMac's networking from DHCP assigned to manual and enter the same network details the router provided and no traffic will flow. 
I guess both of these issues are because the gadgets are aimed at non-technical people who (if they ever get into the remote interface) don't want to be worried by DHCP, NAT etc.
So, the final solution was the allow the TimeCapsule to share the satellite modem's connection via wireless and the BT to share the aDSL via wireless and wired. The iMac and the AppleTV choose which connection they need by the wireless network they attach to.