projects
this page is for various projects that i have worked on.
things that required a full process from start to finish, whatever that may look like. installations, products, coding projects, etc.
some of this stuff could probably go in the relevant disciplines category, and some of the stuff there could probably go here. if you’re looking for specific creative disciplines, like full short films, then it’ll probably be there instead of here.
fieldbox
this was my group’s senior design project for my computer engineering degree.
fieldbox is a user-programmable Eurorack module designed, (nearly) from scratch around an FPGA core (specifically a Digilent CMOD-A7 dev board) rather than an MCU, for implementation of more complex audio effects.
4x CV in, 2x audio in/out (selectable up to 32bit192khz), 4x control potentiometers, 1x stereo headphone out (with potentiometer for volume control), 1x universal TRS-MIDI in, and USB-C in (for FPGA flashing)
the more generalized intention was to provide a user-programmable FPGA in the eurorack format, explore what it takes to design a working eurorack module. a big plan (that fell through) was to develop a drag-and-drop process through which one could flash the FPGA’s memory architecture without needing the full toolchain, using an MCU connected through USB, one would drag and drop a pre-compiled FPGA design bitstream that the MCU would directly load into the FPGA’s configuration memory. a lot of inspiration for this was pulled from devices like monome’s norns (which i have and use plenty). in fact, much of this device was inspired by monome’s design philosophies.
a major part of the project (and my job specifically) was to- in regards to the desired drag-and-drop functionality- develop and provide a general structural design for the FPGA’s functional units, and standardisation for this specific device. more specifically, we designed a general structure for the block diagram where, you would only need to go in and edit the “engine core” unit, then recompile, to design a new effect. everything else would be handled by the structure; i/o, data parsing, audio, peripheral connection, etc. the engine core unit was provided signals that you could interface with, inputs and outputs, and you would do all of your gate-based dsp design in there and not have to worry about the nuts and bolts of the peripheral interfacing. a stretch dream that was obviously not realized, was to also provide an easier compilation solution than installing AMD’s Vivado software. obviously that didn’t even come close to fruition.
at the end of the day, we didn’t get all the ideas out, some chips got fried, and we needed some hand-soldered connections, but our final working presentation included a physical unit that was connected to a working eurorack system, and produced outgoing audio in response to input audio and CV. which, i don’t know about you, but is a total win for college students given a single year to go from ideation to final working project. given an extra month i think we could have actually done much more with it to demo.
this was my pet idea, and it was cool to see it become a working physical unit, even if not all the ideas were visualized.
blue moon triptych
blue moon triptych was a series of streamed musical performances by members of the lines community. a series of three performances, either streamed or pre-recorded, by three artists, to a theme interpreted however they chose. my performance was using my modular synth gear. i leaned into the design of circles, round, and waves, both in sound, gear, and in visuals.
this was a fun thing to put together, even if the recording setup did take over the entirety of my living room for about half a year (i get lazy when it comes to tidying up).
the actual audio is being generated, processed, etc. by my modular synth visible in the video; and externally recorded by a zoom h5. this audio feed was sent out to the external recorder as a scratch track, to sync up directly in post later. the video setup was… considerably more complex.
there’s a few things happening in regards to the video setup. first; i’m using an Atomos Ninja V with the stream video switcher device. this allows four video signal inputs. these are coming from a few places. i have three cameras set up: an old RED Epic-MX aimed at my synth setup, a GoPro giving a top-down angle, and a Sony a7iii giving a wide of the whole room. the output from the switcher is fed into the TV. in addition, my macbook is running a few things. OBS is running for general video capture, from the switcher’s USB-C video data stream. it’s also running TouchDesigner, with a custom patch that has signals coming from a lot of places to manipulate the video effects, which are overlaid onto the same video stream. [i believe this output video signal was also fed back into the switcher’s fourth input? it’s been a while, so i don’t exactly remember this detail.] connected to my macbook is a funny old device that saw no use for over a decade; an old Leap Motion controller. TD has a unit that can directly interface with the Leap’s hand tracking capabilities, in fact giving you position and rotation data for each of the hand/fingers’ tracking, which gives you a lot of stuff. i, being not too advanced, just matched the position and rotation data to the two donuts you’ll see on screen. in addition, there is incoming midi data being sent by a 16n faderbank. the 16n has various connectivity options, and it’s connected both to my macbook through USB sending midi data, and it’s also connected to my modular rack through i2c, or the specific protocol of ii used by monome’s modules.
on the note of the rack; the majority of the patch is controlled by my teletype. this is a module that allows me to, on the fly, type up short scripts that control the rest of the system. this is connected to the 16n, which gives 16 channels of fader-based control without needing extra patch cables.
[more patch notes to be added.]