Portfolio

Here are some projects that rate slightly better than half decent. Most of them are from my time at Dolby Laboratories and are not open source.

spaduino

Arduino Hot Tub Controller

spaduino was a hot tub controller implemented using an arduino UNO compatible controller. It was used as a drop-in MCU replacement for a Spa Quip SP500AMKI, manufactured by Spa Quip/Davey in New Zealand.

The original controller in my unit (an Atmel AT90S4433) was 15 years old when it died, and I was faced with either replacing it with the same version, or purchase an entirely new controller. A new unit was a big expense, especially considering I had recently replaced the heating element, however the original firmware implementation was very rudimentary, and completely lacked any modern ECO features. And so I decided to implement my own.

tinybrain/spaduino
tinybrain/spaduino-schematics

Languages: C++, Objective-C, Ruby
Technologies: Arduino, Raspberry Pi, Protocol Buffers

Slimer

Dolby Evolution

Broadcast Transcoder for ATSC A/85 Compliance (CALM Act)

A realtime system for facilitating trusted CALM act compliance in broadcast networks. It consisted of a realtime E-AC-3 transcoder capable of updating a stream’s ‘dialnorm’ in response to ITU-R.BS.1770 or EBU R 128 compliant levelling, and a signing mechanism implemented in metadata extensions to indicate a stream’s compliance to downstream transcoders.

This implementation was a technology preview shown at NAB Show® 2012, mainly for technology partners and technical operations executives from major broadcasters (CBS, ESPN, Comcast, etc.).

Dolby Broadcast Loudness Solutions

Languages: C, C++
Technologies: Qt, DD+ (E-AC-3), DPLM

Dolby Axon Transcoder

Dolby Voice / Conference Phone

Spatial Voice for Enterprise

I was part of a small team tasked with building a research platform for determining the viability of applying spatial audio and wide-band coding techniques to enterprise voice applications.

Some of my work included client apps for desktop (Qt) and iOS devices, and an audio IO and network synchronisation subsystem designed to enable highly deterministic global clocking between asynchronous devices in unreliable network environments.

Dolby Voice
Dolby Conference Phone

Languages: C, C++, Objective-C, QML
Technologies: Qt, ASIO, CoreAudio

Dolby Voice Demo

Dolby Axon

Spatial Voice for Gamers

The Dolby Axon Desktop Client was a social spatial voice application built on top of the Dolby Axon game engine middleware.

Although originally a premium subscription service and lacking a Mac client, it was eventually ported to Qt and provided free, becoming one of the most popular voice systems particularly with MMO gamers in large guilds.

Without doubt it was the best quality voice client by far. Concepts from Axon were later used in Dolby Voice.

I handled most of the client’s design and specification, the front-end implementation, and backend services related to account management, social persistence and messaging.

Dolby Axon

Languages: C, C++
Technologies: Win32/WTL, MySQL, Axon Middleware

Dolby Axon Desktop Client

Lake / Lab.gruppen

Loudspeaker Processors for Touring

In the live sound industry, the Lake series loudspeaker processors and equalisers are as good as it gets.

My responsibilities included product specification and development, hardware and software validation, manufacturing tests and software engineering. I worked on various parts of the Lake Controller, Preset Manager and firmware for the Clair iO, Lake Contour/Mesa, Dolby Lake Processor (ARM) and Lab.gruppen PLM series (Ti C67x).

On the latter, I did much of the work integrating and exposing Lab.gruppen’s digital systems and features with the Lake firmware and controller software, including the front panel, ‘Load Library’ complex impedance load sensing, gain stage configuration, fault protection and other safety features.

Lab.gruppen - About Lake
Lab.gruppen - PLM Series

Languages: C, C++, Matlab
Technologies: Win32/DirectX, Nucleus RTOS, ARM (SAM7, Xscale), Ti C674x

Lake

SBA Vault

Music Video & Audio Asset Management

An enterprise system for optimising and automating the ingest, management and distribution of music videos and audio programs for retail and commercial licensing.

The system abstracted media assets, metadata, deliverables, batch processing and manual tasks into a dependancy graph, generating prioritised schedules for users and groups which were presented via various task oriented UIs. On completion of dependant tasks, automated tasks such as media transcoding and program generation were automatically scheduled and dispatched to a render farm.

SBA Music

Languages: C#, C++, Python
Technologies: Windows.Forms, SQL Server, LLBLGen, DirectShow, AVISynth

SBA Music

5.BOOM!

Haptic LFE Using a Vortex Cannon

This was an entry in IdeaQuest, an annual incubator program.

Someone (not me) had the daft idea of using a vortex cannon as a subwoofer. A colleague of mine was responsible for building the driver, while I looked after the demo.

As it turned out, the cannon’s characteristics didn’t translate well to traditional LFE content. It actually had a very limited repertoire, pretty much only responding to a shaped impulse which was tuned for maximum effect using trial and error.

The propagation delay was also significant being about 100 times slower than usual speed of sound (340 m/s).

On the up side, it packed a small punch - literally.

After some searching, I eventually settled on the original Avenger’s Theatrical Trailer for demo content, supplementing the original audio with a trigger track which fired the impulse from a sampler.

The trailer is chock full of stuff which the canon was perfect for, including musical and visual cues, helicopter rotors, and plenty of things going “boom” - although none quite as cool getting a shockwave in the chest from iron man’s suit.

I also did a poster…

Technologies: Cocos Reaper, Industrial Adhesives

5.BOOM!