Digital Audio Interface GUI

At AudioMojo we were building a wireless system for very high quality audio transfer used in home theater setups.  The main engine was a custom ASIC that my team was designing which we prototyped in an FPGA.  One of the fun blocks I designed was a sine wave pattern generator that was instantiated in both the input (master) datapath and the output (slave) datapath.  It could generate digital sine waves, or any digital pattern, from 24Hz to 22KHz.  We used it to isolate transmission issues, inject signal errors and test audio quality.  It worked remarkably well and helped us solve so many issues.

I created a GUI to run on my Mac that would communicate over a USB to serial port to our custom development platform and set registers inside our chip.  That way I could enable the pattern generator(s) and set the frequency as well as manipulate any other important registers very easily.

Once my co-workers saw this they immediately asked me to start adding features to control their blocks.  Two blocks were especially difficult to manipulate by peaking and poking registers by hand: loading the FIR filter blocks, and volume control.  So I added those two and off we went.  The GUI literally saved hours of work per day because of all the iterations we did trying to get the audio to be perfect.

I also made all of the speaker icons that were used in the main system demonstration software, so the right-front speaker icon became my icon for this application.