David Jones / Boxlight / EZ DSP

About Me

I am an audio programmer and musician who loves building systems that aid in the creation of music. I have built systems in C++, python, java, javascript, JUCE, MaxMSP, TensorFlow, PyTorch, and Pure Data. I have deployed these systems over a variety of platforms including VSTs, the web, Daisy Seed (bare metal), Arduino, Raspberry Pi, Unity, and Unreal Engine. I have built a variety of embedded systems on both bare metal and RTOS systems. These systems have ranged from guitar effects processing units to gestural MIDI controllers to a drum machine and looper instrument. I have built, trained, and deployed several Machine Learning models, primarily using deep learning techniques. I have deployed these models on the web using websockets and in Ableton Live using Max for Live devices. I also enjoy sound design and love modular synthesis techniques in both the analog and digital domains. I have designed games in Unity, Processing, and P5.js with both live score generation and traditional sound design techniques.

I began my journey as a musician in my senior year of high school when the pandemic hit in 2020. I, like many, began producing music and quickly fell in love with the entire process. I fell so deeply in love that after only about a year of making music, I knew that this was a passion I would never lose. As such, I applied to the Music Technology program at Georgia Tech and I got in! After a semester of imposter syndrome in all of my music-related classes, I finally had my first class on audio programming. This class opened my eyes to the beauty that can be found in programming, especially in programming for audio. As my college journey progressed, I developed an extreme passion for audio programming, moving from project to project, trying to learn how to deploy audio on every platform (i.e. plugins, web, embedded, etc.). In this process, I learned that my passion for programming and engineering extends far beyond just audio. As I continue to develop software and devices, I become increasingly obsessed with the unique set of problems that can only be solved through the design of complex systems.

Projects

The Kitchen

The Kitchen is a hybrid musical instrument that seemlessly combines the functionalities of a drum machine and a looper. The Kitchen is designed for live performance, incorporating a variety of features that encourage improvisation through selective randomization. The instrument was designed using RNBO embedded on a Raspberry Pi. It is the first instrument of its kind (in both audio funtionality and control dimensionality) to be developed using RNBO. This project was carried out in an effort to prove the efficacy of RNBO as a development environment for complex musical instruments.

Skills: Raspberry Pi (RTOS), RNBO, Python, Linux, OSC, Fusion 360, Shell Script, Multiprocessing, CircuitPython, SPI, soldering

EZ Dist

EZ Dist is a distortion and overdrive plugin that uses physical modeling to produce accurate simulations of the circuits that are in many distortion and overdrive pedals. This project takes inspiration from this paper on physical modeling. The circuits are simulated by separating the entire circuit into blocks, finding the transfer function of each block, and using the bilinear transform to digitize the analog filter.

Skills: C++, JUCE, DSP, Physical Modeling, UI/UX Design

Rust Sampler

Rust sampler is a VST3 audio plugin and crate built in Rust. The internal sampler engine has ADSR, sustain looping with two modes and optional crossfading, three different types of samplers, and file loading for wav and sfz files. The RustSampler crate contains all of the sampler engine and voice structs that would be necessary to build a sampler using rust. There is also very thorough inline documentation and helper functions for almost anything a sampler might need.

Skills: Rust, Github Project Management, DSP, API Design, Multithreading

EZ DSP

EZ DSP is a portable, fast, low-footprint audio effects library written in C++. EZ DSP is design to be usable in most audio processing contexts as all of its processors run on a sample-by-sample basis. So far, the library has been tested in JUCE, directly using CPAL, and on the daisy seed microcontroller. Each audio processing object is designed to be very easy to understand and modify as developers may see fit. As such, documentation is extensive and variable names are meant to be as explicit as possible.

Skills: C++, API Development, Unit Testing, Git, DSP

DRUNNK AI

DRUNNK AI is an interactive website designed to allow users to reimagine and resynthesize any sound they please through the use of "games." Each "game" is designed to interact with the sound in different ways. When a user selects a file or creates a recording, that subsequent audio file is sent to a WebSockets server that extracts the inferences from each model and sends the resultant audio back to the site's front end. Once the audio is loaded, the user is free to interact with the file in a virtually infinite number of ways, using any combination of the "games" with the site's buit-in audio effects.

Skills: Python, TensorFlow, Pytorch, Deep Learning, RAVE, WebSockets, p5.js

LoopFx

LoopFx is a looper and multi-effects guitar pedal built using the Daisy Seed embedded platform for music. It has a modular signal chain that can be altered using an encoder. The device has six rotary potentiometers that can be used to change the selected effect. There is a display with a very simple user interface for easy navigation through the effect parameters and the various modes.

Skills: C++, STM32, Bare-Metal, Git, DSP, Arm, EasyEDA, i2c, soldering

Other Projects

  • EZ-DLay, EZ-Chorus, EZ-Distortion- Simple audio effect plugins built with JUCE.
  • Skills: C++, DSP, JUCE

  • PolyGone- A 3-dimensional platformer game that looks and feels like a 2-dimensional platformer. Uses generative audio using LibPD and Unity.
  • Skills: C#, Unity, Pure Data, libPd, FMOD, Sound Design

  • SoundByke- A virtual audio-visual installation that lets users ride a bike through a city with algorithmically generated pieces for each city block.
  • Skills: C#, Unity, Pure Data, libPd, FMOD, Sound Design

  • Max For Live Devices- Various instruments and MIDI devices.
  • Skills: MaxMSP, DSP, Sound Design, Instrument Design

  • Bubble Run- An arcade-style audio driven game built in Processing.
  • Skills: Processing, Multithreading, UI Design

SKILLS

Programming Languages/Tools

C++

C

Python

Rust

Matlab

javascript

MaxMSP

C#

Shell Script

git

VSCode

XCode

Linux

MacOS

CMake

Audio

CPAL

DSP

JUCE

WebAudio

Tone.js

RNBO

Open Sound Control (OSC)

MIDI

RAVE

Sound Design

Pure Data

Ableton

Protools

Logic Pro X

Reaper

Audio Engineering

Embedded Systems

STM32

ESP32

Raspberry Pi

i2c

UART

SPI

CircuitPython

Soldering

Fusion 360 (CAD and PCB Design)

Lab Testing (i.e. Oscilloscopes, Multimeters, Function Generators, etc.)

Game Design

Unity

Unreal Engine

libPd

Wwise

FMOD

Processing

Others

TensorFlow

PyTorch

Deep Learning

Html

CSS

p5.js

MUSIC

Do you wish to contact me?

Send an email now.

Contact me!