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.
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
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.
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.
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.
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.
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!
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:
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!
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!
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!
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?).
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.
As a final project in a DSP course, my partner and I created a convolution reverb VST plugin using the Steinberg VST SDK.
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.
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.
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.
If you have any questions, comments, or feedback, I invite you to email me at brian.d.leu@gmail.com