Computer Science

My first area of study was computer science, where I quickly gravitated to database management and web application development.  My MA thesis involved using XML to represent sheet music for easier transmission via the internet, and much of my recent research and activity has been in the area of XML and music.

Active Projects

  • Multimedia Interactive Listening Example System (MILES):
    • One of my long-term goals was to create an interactive guide for students to help them better analyze music.  My breakthrough on this was when, with the advent of HTML5 audio, I could create a simple JavaScript listener to capture the playback time.  The rest was just a simple matter of creating a storage format to store the annotations—done with XML as a continuation of my MA thesis—and building some client-side JavaScript to parse this information.  The result was MILES.
    • example:  Original Dixieland Jazz Band – “Livery Stable Blues”
    • XML container:  Original Dixieland Jazz Band – “Livery Stable Blues”
  • flash cards sans Flash:
    • One of the more challenging aspects of teaching music to non musicians is helping them learn to listen to music—in other words, analyze it—not just hear it.  In particular many students struggle with the listening portion of the exams—true of all levels of music history.I wanted to avoid using Flash, as it was on its way out of widespread use—and full of security issues—and I wanted to make it universally accessible on a variety of devices.  For this reason, I created a flash card system, based upon the underlying HTML5 audio system of MILES, that is completely driven by HTML5/CSS/JS/XML.  It also works with touch devices, such as iPads and Android tablets.
    • example:  pre-Jazz / early Jazz / Armstrong listening exam
  • listening games
    • In the same vein as the flash cards project, I wanted to provide a fun way for students to prepare for the listening portion of the exams, thus was the genesis of the listening games system.  Like MILES, it uses HTML5/CSS/JS/XML to create a simple, mobile-friendly, name-that-tune game of the listening from each exam in the course.  Students can also post their high scores to the course homepage, for some added friendly competition.
    • example:  pre-Jazz / early Jazz / Armstrong listening exam
  • interactive Jazz ensemble demo
    • The latest tool I developed is a Jazz ensembles demo.  Again, novice listeners can have a difficult time deciphering what the roles or even sounds of individual instruments in the two major Jazz ensembles:  combos and big bands.  This tool uses multitrack audio and a virtual mixer to allow students to control the volume—or mute—any number of instruments.The challenge with this tool was getting multitrack audio to play synchronously.  Simple HTML5 audio playback was not sufficient, as starting all of the instruments at the same time using JavaScript proved impossible.  Subtle difference in playback timings would cause phasing and synchronizing issues.  Also, the state of synchronizing features such as MEDIAGROUP was in flux, and not supported across browsers.I then stumbled upon the Web Audio API.  It was much more complicated to implement than HTML5 audio, but allowed much more fine control over synchronization.  The result was a tool that could handle any number of instruments.
    • example:  interactive Jazz ensemble demo

Other Projects

  • ARTD 325:  Digital and Web Design (2015FA)
  • Robotics
  • e-commerce websites
    • One of my latest projects was to develop a registration and tracking system for the long-running charity ride in Vermillion, the Margarita Ride.  It uses PayPal’s REST API to process payments.
  • networking
    • I work with a number of local groups and establishments to develop networking solutions to address their needs.
  • consulting
    • In addition to networking, I provide technical consulting solutions both to on-campus and off-campus organizations.  Most recently, I was the technology coordinator for the Center for Transatlantic Studies, while it was in existence, and provided a number of services to them, including:  website development, web application development, network surveys, etc.