Welcome

Hello!

My name is Brian.

Welcome to my personal webpage.

I like signal processing, software, embedded electronics, open source, audio, math, synthesizers, DIY, new technologies, etc.

I like things that combine as many of these as possible.

By my nature I gravitate toward "jack of all trades" and do everything I can to avoid "master of none".

I am currently a software engineer at Applied Dynamics International.

I graduated from the University of Michigan with a BSE in Electrical Engineering in May 2015.

I was born and raised in a small town in Northwest Ohio.

Feel free to take a look around and to contact me if you have any questions.


About

Skills

Linux (Arch / Fedora / Debian / Yocto / Buildroot), Windows, OS X, iOS

Analog Devices (SHARC / SigmaDSP), TI (C55x / C66x), ARM (Cortex-M / Cortex-A), Atmel AVR

C++, C, Python, C#, JavaScript, PHP, Fortran, MySQL, HTML5, LaTeX, Lua, Perl

Matlab, Simulink, Mathematica, Maple, NI LabVIEW, HEAD Acoustics ArtemiS

Git, Subversion, Perforce, RCS

GitHub, GitLab, Bitbucket, JIRA, Agile/Scrum Trained, Markdown, Asciidoc

Sublime Text, VS Code, Visual Studio, Eclipse

Embedded Studio, Code Composer Studio, VisualDSP++, Arduino

Kicad, EAGLE, Cadence, SolidWorks, TurboCAD, Google SketchUp

Pure Data, Max/MSP, Supercollider, Faust, Ableton Live, Ardour, Pro Tools, AudioMulch

Oscilloscopes, Signal Generators, Spectrum Analyzers, Network Analyzers, Meters, AudioPrecision

Activities

Honors/Awards

  • Graduation Cum Laude - May 2015
  • Globus Online User of the Month - August 2013
  • XSEDE12 Student Programming Competition - Second Place - July 2012
  • Dean's List - Fall 2011, Winter 2012
  • University Honors - Fall 2011, Winter 2012
  • Eagle Scout - 2011
  • National Merit Scholar - 2011

Professional Life


Software Engineer at Applied Dynamics International

Since November 2017, I have worked as a software engineer at Applied Dynamics International. I've worked primarily on the rtxd project, a framework/daemon for real time, synchronous distributed computation for aerospace, defense, IoT, smart manufacturing, etc. I've also worked on device drivers for PCI/VME boards that ADI supports and helped establish a new development/continuous integration workflow based on GitLab and Jenkins.


DSP Software Engineer at Harman International

From May 2015 to October 2017, I worked as a Digital Signal Processing Software Engineer at Harman International in a R&D/Pre-development context as a member of the Lifestyle Audio "Center of Competence" group. Most of my work focused on the HALOsonic group of automotive noise management technologies. This group owned preexisting and developed new noise cancellation, sound synthesis, surround processing, and similar algorithms within the company, as well as supporting their deployment to an array of embedded platforms.




Internship at Harman International

From April 2014 to April 2015, I was an intern at Harman International in the Acoustic Systems Engineering group. A substantial amount of this work was related to Harman's audio restoration algorithm Clari-Fi. I worked on tasks related to organizing, developing tools for, and carrying out tuning and validation tests. During this time, I also became engaged in developing a platform for the external Electronic Sound Synthesis algorithm.



Internship at Applied Dynamics International

I spent the summer of 2012 and parts of the summer of 2013 working at Applied Dynamics International. I was tasked with developing a web application from the ground up that would allow Applied Dynamics's sales team to track requests for quotation, proposals, and sales orders. Starting with only marginal knowledge of HTML, I taught myself JavaScript, PHP, and MySQL to complete this task. My application utilizes Zend Framework for interfacing with a MySQL server via PHP and the Dojo Toolkit to provide client-side scripting and an improved user interface. Because the application is for internal use only, I am unable to let you play around with it, but click on the thumbnails below to get a better idea of the functionality the application provides.



Personal Projects


Quad Panner Module

Still very much a work in progress, but I've spent a lot of time recently working on a Buchla 204-inspired Eurorack module utilizing a Teensy 3.5, an Analog Devices multichannel codec, TDM, a lot of trial/error modifying joystick potentiometers, and questionable means of mounting LEDs. Oh, and I've spent a lot of time learning to use Kicad!



Cassette Deck Repair

In winter 2018, I found an old, rather inexpensive cassette deck in my parents' garage that I wanted to start using. However, there were a few things that needed to be fixed before this could happen:

  • There was a cylindrical rubber tube on the capstan (that was used to drive a gear that in turn spins the tape counter) that was effectively disintegrated and needed to be replaced. A replacement on McMaster-Carr did the trick.
  • The gear used to engage the "Reverse" functionality was a old soft plastic that had broken. I found replacements on AliExpress ($0.14 each with free shipping from China!) that work great.
  • A switch that engages when the "Record" button is pressed had broken and I managed to find a replacement on Mouser that works well enough.
  • A few of the indicator bulbs (such as the one marking Dolby noise reduction as enabled) had burnt out, so I replaced these with (purple!) LEDs I had lying around.


Eurorack MIDI Expander - Edges

In late 2018, I modified the developed-but-never-released MIDI expander for the Edges eurorack synthesizer module by Mutable Instruments, reworking the PCB in EAGLE to add a MIDI DIN connector. I designed a front panel for the expander and had both fabbed using OSHPark. I also modified the layout to use a 3.5mm TRS connector for MIDI, in both 2hp/3U and 16hp/1U form factor, but never had any of these made.

After having MIDI capabilities for my Edges, I quickly noticed a few firmware tweaks I wanted to make. I implemented them, submitted a pull request, and my changes were merged upstream!



1U MIDI Controller - Needles

In early 2018, I assembled (hand-soldered TQFP with a $15, 25W, no-temperature-adjustment soldering iron!) a copy of Needles - a 1U MIDI controller for Eurorack. Ithai Benjamin (the designer) was gracious enough to ship me a PCB and front panel at less than cost. I ordered the parts on the BOM and assembled it. It looks great!



DIY Sonos Connect

Not a lot of my own work going on with this one, but still something I wanted to share. After moving in early 2018 to a place where it wasn't feasible to run wires from one room to another, I wanted a way to stream music to/from various locations. Rather than paying $350 to connect a turntable to my Wi-Fi, I opted for a $10 Raspberry Pi Zero W + a $15 AudioInjector Zero stereo codec. Running Snapcast, I can stream radio/cassettes/vinyl/web audio synchronized to/from various locations (anywhere that runs Linux) in my home. The Android app is an added bonus!



DIY Capacitive Touch Controller

In spring 2017, I assembled a DIY capacitive touch controller for electronic music following the guide on the Madrona Labs website. The Max/MSP/Jitter patches that went along with it were quite old, so I updated them to use the latest version of the Max SDK, and compiled them on Windows. Still on my to-do list is a way to use them on Linux (maybe porting them to puredata?).


Academic Life


Surround Sound Processor EECS 452: Digital Signal Processing Design Laboratory

As a Senior design project, my team and I created a platform to process surround sound audio using an Analog Devices SigmaDSP and a Raspberry Pi, controllable via a touchscreen GUI. You can find the source for this project at https://github.com/brianleu/RPiUpmixer.



Convolution Reverb Plugin EECS 451: Digital Signal Processing

As a final project in a DSP course, my partner and I created a convolution reverb VST plugin using the Steinberg VST SDK.

More Information


Data-Intensive Computing REU

I spent June and July 2013 completing an NSF funded Research Experience for Undergraduates with the Dependable Systems Research Group at Clemson University, led by Dr. Jason O. Hallstrom. My work was on the Intelligent River Project, splitting my time between learning about and deploying wireless, ad-hoc mesh networking nodes using B.A.T.M.A.N and implementing an autonomous quadrotor to be used for data collection using APM:Copter.


Visualization of Compressible Turbulence and Mixing

From February 2013 to July 2013, I assisted Pooya Movahed, a Ph.D. candidate in Dr. Eric Johnsen's Computational Flow Physics Laboratory, in creating visualizations of data sets generated by his research in hydrodynamic instabilities. Albert Liu and Parth Sheth collaborated with me in this work. We created a poster which I presented at the XSEDE 13 Conference in San Diego. This work was done on the XSEDE Lonestar cluster located at the Texas Advanced Computing Center.




Numerical Studies of the Klein-Gordon Equation

In April of 2012, I began an exploration of numerical analysis of nonlinear partial differential equations using high performance computing, under the direction of Dr. Benson Muite. I was joined by Albert Liu and Parth Sheth in a project exploring expansions of the Klein Gordon Equation by running batch jobs on XSEDE HPC resources. We then created visualizations of our data using VisIt. We created a poster which was presented at the XSEDE12 Conference in Chicago in July of 2012 and at the SC12 Conference in Salt Lake City in November of 2012. Our work was also featured on the Office of Research Cyberinfrastructure's (Now ARC) newsletter at the University of Michigan. You can check out some of the simulations that we created below.



Education

BSE Electrical Engineering - Cum Laude - University of Michigan - Septemper 2011 - May 2015

Coursework

  • EECS 461: Embedded Control Systems
  • EECS 460: Control System Analysis and Design
  • EECS 452: Digital Signal Processing Design Laboratory
  • EECS 451: Digital Signal Processing and Analysis
  • EECS 419: Electronic Machines and Drives
  • EECS 320: Semiconductor Device Fundamentals
  • EECS 311: Electronic Circuits
  • EECS 280: Programming and Data Structures
  • EECS 230: Electromagnetics I
  • EECS 215: Introduction to Electronic Circuits
  • EECS 216: Introduction to Signals and Systems
  • MECHENG 424: Engineering Acoustics
  • CEE 303: Numerical Methods
  • MATH 217: Linear Algebra
  • ENGR 101: Music Signal Processing
  • COMP 415: Introduction to Electronic Music

Contact

If you have any questions, comments, or feedback, I invite you to email me at brian.d.leu@gmail.com