Tom Ewing - Portfolio


Tom Ewing - Portfolio

About me

Hi! My name is Tom and I currently work as an Embedded Audio Engineer at Eave, designing and building ultra-low power IoT sensors and hearables. My specialties are in firmware, DSP, and AI in audio and sensor processing.

I also have recently launched Moa Labs to host my projects focusing on open-source hardware and firmware.

I’m a graduate from the University of York with a Masters of Engineering in Electronic Engineering with Music Technology Systems. This page showcases a selection of my Uni projects I have developed, demonstrating my skillsets across Audio, Acoustics, DSP, and Embedded Engineering.

If you would like to contact me or discuss any of these projects in more detail, you can do so using my:

LinkedIn: www.linkedin.com/in/tom-ewing-41592623a

University Projects

Buffaflo - Audio and Multimedia Dataflow Framework for ARM Cortex-M4 Microcontrollers

Languages: C, Python, GDScript

Skills: Embedded Audio Programming, ‘Bare-Metal’ Embedded C, Driver Development, Concurrent Systems, Multi-rate Systems, DSP, Software and Hardware Debugging

Description: Buffaflo (a portmenteau of ‘Buffer’ and ‘Flow’) is a framework designed for constructing modular and runtime-reconfigurable musical instruments and sonification devices on embedded platforms - primarily targeting the STM32 family of microcontrollers. This framework is in active development, initially designed as part of my MEng Individual Project to be used for teaching embedded audio programming to 2nd Year Electronic Engineering students.

The framework allows for audio generating and processing ‘modules’ to be connected flexibly in a range of setups and reconfigured at runtime. A library of modules capable of waveform synthesis, envelope generation, sampling, and interfacing with external peripherals are provided, whilst ensuring simple and intuitive functionality for users to develop their own modules.

The embedded framework is coded in C, with ancillary graph-generation scripts written in Python (NumPy, SciPy, Matplotlib) and an OLED design tool for prototyping simple GUIs developed in Godot using GDScript.

Real-Time Linear Predictive Coding Visualiser and Vowel Phoneme Estimator

Languages: MATLAB

Skills: DSP, Real-Time Audio Analysis, Speech Processing

image

A set of MATLAB tools for performing real-time Linear Predictive Coding (LPC) of either live or pre-recorded speech data. The process estimates and plots an approximation of the vocal tract’s resonances - essentially what the vocal tract would look like as an audio filter. Applications include speech recognition and resonance tuning for vocalists.

Double Bass Physical Modelling Synthesizer

Languages: MATLAB, HTML

Skills: Physical Modelling Synthesis, Digital Waveguide Modelling, Digital Filtering, Audio Analysis

image

A physically modelled double/upright bass instrument, consisting of digital waveguide strings, scattering junctions and body filtering to produce a dynamic variety of realistic tones. This project involved developing the instrument in MATLAB, using relevant FFT and Spectrogram measurements to analyse its output. The development was journaled and presented in an appropriately formatted HTML file.

Further skills learned in this module include the development of realistic reverberation algorithms, spectral modelling synthesis and electronic circuit modelling.

Room Acoustics and Psychoacoustics Analysis

Languages: MATLAB

Skills: Acoustic Analysis, Impulse Response Measurement and Analysis

image

This project involved recording and analysing a room impulse response as well as using physical measurement to determine room modes. From this data, the room was comprehensively reviewed in terms of its suitability for lectures and as a music venue - accompanied with suggestions for the type, size, and placement of acoustic treatment required to improve the space’s characteristics.

Hiking and Bird/Plant Identification App

Languages: Java

Skills: UI/UX Design, GUI Programming, Android Development, Unit and Integration Testing with JUnit, Market Research, Team Management

image

This was a group project, where my main responsibilities were researching and implementing modern app user interface and user experience trends. The app is targeted towards hikers, providing first aid information and tips on identifying bird and plant species. Multimedia in design, the app is capable of displaying images, text, videos, graphics, and audio within an easily navigable menu system. The team operated using the Agile methodolgy, collaborating effectively using Slack and GitHub.

Programming Experience

Thorough usage has given me an advanced understanding of the following languages:

  • Python (8+ years)
  • C (4+ years)
  • MATLAB (4+ years)

Included in my low-level programming skillset is programming in assembly and interpreting dissassembly, particularly with the Thumb-2 Instruction Set for ARM.

I also have experience in Swift for iOS app development and Java for desktop and Android development. I have used C++ and Csound when using the JUCE framework for audio programming, as well as Pure Data for patching complex audio systems.

I am very familiar with Git and GitHub, Agile methodologies, and Test-Driven Development.

Other Experience

University Modules

Other topics I have excelled in at university include Analogue and Digital Circuitry, Machine Learning, Control Engineering, and Live and Studio Audio Engineering.

In relevant modules, I attained the following results:

  • Control Engineering - 92%
  • State Space & Digital Control - 89%
  • Algorithms & Numerical Methods - 100%
  • Acoustics & Psychoacoustics - 80%
  • Voice: Acoustics & Applications - 77%
  • Design, Construction & Test for Audio - 82%
  • iOS Audio Programming - 81%
  • Engineering Maths, Signals & Systems - 81%

Electronics Assembly

I have also worked professionally at an electronics assembly company, and am well experienced in large-scale surface-mount and conventional printed circuit board construction and testing.

Nissan Technical Centre Europe Work Experience

This was a multidisciplinary placement across several departments. Within the Noise, Vibration and Harshness Department, I assisted in the measuring and improvement of the acoustical properties of motor vehicles. In the Audio Department, I shadowed engineers working on the integration of contemporary directional microphone array technologies to improve the quality of hands-free communication and voice commands when driving. As part of the Media Department, I worked on the delivery of office and public news, updates, and advertisements.

WAHAM Records

After successfully applying for a grant of £1,150 from the University of York, with three colleagues I established a community-driven record label to support independent artists across the UK. This has involved successful merchandise runs, producing engaging live recordings and releasing our artist’s tracks across major streaming services.