Colin Sullivan

Gracenote

I worked with Gracenote during the summer of 2012 to develop interactive applications that were integrated with existing music information retrieval tools and recommendation services. I built an interactive iPad app for content discovery as well as a web-based visualization tool for viewing high-level features extracted using existing music information retrieval tools. I also built and deployed a REST API web service on top of feature extraction tools and enhanced existing tooling in C++ to provide modern data formats and to build the tools on modern Linux systems.

I gained much practice using the following technologies and techniques:

  • Web-based visualization tool
    • WebGL (Three.js)
      • Built custom geometry programmatically to alleviate lighting artifacts
    • Web Audio API
      • Built abstractions around low-level audio data to support visualization
    • Require.js
      • Delivered modular and self-contained components
      • Delivered build system for optimizing JavaScript
  • iOS (iPad) interactive app
    • Cocos2D (Objective-C framework)
      • Leveraged for scene management and sprite animations
    • Box2D (C++ physics engine)
      • Integrated with Cocos2D for more interesting interactions
    • Cocoa
      • Integrated Cocos2D and Cocoa UI elements on same screen, leveraging strengths of each when applicable
    • HTTP
      • Integrated with experimental Gracenote web service
  • REST API
    • Flask (Python web framework)
    • Celery (background task management)
    • Redis (server-side state)
    • Linux (configuration and deployment)
  • Feature Extraction Tool Enhancements
    • Linux, Make
      • Migrated large Visual Studio project to Linux makefile
    • C++
      • Added functionality to low-level tools where applicable