Developer Profile: Infrasonic Audio (Nick Donaldson)

Developer Profile: Infrasonic Audio (Nick Donaldson)

If you have been active on the Daisy Discord and forum, you'll likely recognize "Infrasonic Audio", a community member known for sharing his deep insights into synth development. His expertise stems from working on commercial synthesizers and audio products over the years.

Nick Donaldson founded Infrasonic Audio in early 2022 and has been providing freelance development and consulting services for synths and digital music products. He has spent over a decade working as a professional software engineer on product-focused teams, leveraging his degrees in electrical engineering and musical technology as well as years of experience in C++, Digital Signal Processing, and embedded development. Combining his engineering skill set with his experience as a lifelong musician, he is confident in developing and delivering innovative products.

In late 2023, he released his first Eurorack module Warp Core, a complex stereo oscillator Eurorack module for exploring the uniquely complex world of digital synthesis. In contrast to traditional oscillators, this Daisy-powered synthesizer does not produce perfect geometric wave shapes (e.g, triangle, saw, square, etc.). Warp Core instead produces variably complex waveforms from a pure sine wave lookup table through phase distortion.

Interview

We spoke with Nick about his journey as a musician and synth developer:

ES - Thank you so much for taking the time to talk to us! We would love to start by learning more about your musical background.

ND - I grew up in a pretty musical family. My dad is a guitarist and I was hooked on music from an early age. I took piano lessons through high school, including jazz, and taught myself guitar (with a lot of help from my dad, of course). I played guitar and keys in bands through high school and college, mostly rock and blues fusion type stuff. I didn’t really start getting into synths and computer music production until later in my university studies, and through my early-mid 20s I was hooked on making music in DAWs and learning to both use and make synthesizers and digital effects (mostly through software). I developed a love of electronic dance music around that time and started DJing a bit, which eventually led into playing live electronic music on hardware. Around this time - about ten years ago - I was working at iZotope and got to play a few of my coworker’s Eurorack setups and couldn’t stop talking about it. My amazing wife noticed this, and saved up money (and did all the research on her own!) to surprise me for Christmas with my first starter modular setup, knowing that I was enamored with Eurorack from playing other people’s systems, and from then on I was absolutely hooked. Modular synths became my main instrument of choice, though I still play piano and guitar and do plenty of DAW-based production.

ES - What inspired you to get into synth development?

ND - I’ve always loved science, engineering, art, and music, and synth development is a brilliant marriage of all of those things. I spent over a decade as a software engineer working in startups, most of which were not at all music-related, and during that time I was just doing music and music tech stuff as a hobby. During the pandemic I really started yearning to do something that was more fulfilling to me. Seeing one of my friends (Ed, from Circuit Happy) achieve success as a synth developer was inspiring to me to try it out myself. He was my first client – technically even before I started Infrasonic Audio, I helped him get the first version of The Missing Link off the ground. We both like to tell the story of the two of us chatting at a barbecue about him starting a synth company not long after we both left the job at which we met, and it becoming a reality not too long after that. His perseverance in making that happen is a big part of what inspired me to take the leap myself.

Although I had previously dabbled in software synth/effect development - mainly on iOS - hardware synths and effects are what keep me interested both as a creator and a musician. Something about the physicality, and in particular the combination of hardware and software (in digital synths, anyway), has always been much more interesting to me than pure software. Seeing an idea come to life in the real world, turning a knob and hearing (and feeling!) what effect it has on the sound - I still find that incredibly satisfying. As an engineer, there’s something great about developing something that’s more or less immutable (firmware updates notwithstanding) and the limitations and focus that brings to the development process. As a musician, it’s also very fulfilling to be able to identify a particular missing sound or part of my workflow and turn that into something. That’s kind of my ethos on designing synths: first and foremost, I am creating things that I want to use, and my hope is that other people will want to use them too.

ES - Warp Core, your first synthesizer release under Infrasonic Audio, is a phase distortion oscillator. What was the inspiration behind this synth?

ND - First, let me say that the inspiration wasn’t the Casio CZ line of synthesizers, although that’s an easy assumption and comparison to make. Those synths were the origin of phase distortion as well as most people’s primary association with that synthesis method. I have never owned a CZ and I’ve barely played with one - just the Artruia emulation. In fact, once I started working on Warp Core, I deliberately chose not to deep dive into the CZ in order to avoid biasing the direction of development too much – my goal was never to make “CZ-like sounds”, but rather do something more novel with PD/PM techniques. Of course a number of the concepts at play in Warp Core were originally implemented in the CZ line, so credit where credit is due - I just can’t trace the inspiration for the module to me loving that particular synth, because I never had one.

The actual inspiration came mainly from me messing around with Phase Distortion techniques when I first learned about it and was exploring how this synthesis method worked. Early on this was in Pure Data, and later, I found that Bitwig’s "The Grid" patching environment (as well as the Phase-4 instrument in Bitwig) had some really excellent phase distortion operators. I started combining multiple types of PD on top of each other, and a few of those patches in The Grid yielded some really wild sounds. I’d not heard of any Eurorack modules capable of making sounds like that, so there seemed to be an opportunity to do something novel in that space, and that was the motivation to push the idea forward.

Another part of the inspiration comes from some of the synth sounds Liam Howlett was making on The Prodigy records. These were sounds that made me fall in love with synths and electronic music. Once I learned that some of these were done with the VPM (Variable Phase Modulation) engine on the Korg Prophecy, I got some ideas to incorporate PM + PD together, which is one of the unique things Warp Core can do. Phase Modulation is technically a form of Phase Distortion so the two concepts come together quite nicely. I actually recently made a short video demonstrating how to use Warp Core to emulate one of my favorite sounds of all time - the gnarly lead stab in “Funky Shit”.

ES - Before Warp Core became a physical hardware module, it was a software VCV Rack module. Did the creation of that software synth spark the idea of building a hardware phase distortion module? Or were you already planning to develop the hardware version?

I always had hardware in mind, that was the goal from day one. I actually implemented the very first rough version of Warp Core on the Daisy patch.Init() - before even considering the VCV Rack version. The ease of prototyping ideas and having actual hardware to back them up was one of the things that drew me to the platform. Once I reached the limit of what made sense to keep doing on the patch.Init(), before fully committing myself to designing and prototyping custom hardware, I had the idea to do a VCV Rack version to play with some interface ideas, make sure the controls made sense, and get some community feedback on the idea in a low-risk, highly iterable way - VCV was an excellent choice for this, and since the engine was all floating-point DSP anyway it was very easy to port the code over. The community reception was very good, and that was motivation enough to dive deeper into creating custom hardware. I never went back and updated the VCV version to match the final hardware, though - I still might, eventually, but it’s not a high priority for me at the moment.

ES - We would love to learn more about the development journey of the hardware version of Warp Core. What are the major steps involved in building a Eurorack module?

ND - The first and most important step, in my opinion, is coming up with a comfortable user interface design that meets the vision of the module. I am a fan of ergonomics in modular design - I prefer designs with easily accessible, spaced-out controls over trying to put as many controls in a small space as possible. This also influences the choice of size for the module. I do all my initial visual designs in Affinity Designer using a workflow that’s easy to translate to component positions and panel graphics later. I also like to print out the design at 1:1 scale over a piece of stiff foam and punch real controls through the paper to make sure it all feels good. It’s easy to fall into the trap of something looking great in a mockup but being completely off in true scale physical form.

After that, I like to de-risk any complex parts of the circuit via breadboard or even simple fabricated prototypes. Especially if it’s a new circuit I haven’t used before. My first realization of the design is sometimes an "open face" PCB with no panel so it’s easy to probe at and rework the board. Test points and solder jumpers are great ways to make your PCBs more “debuggable” in the early stages. When I was working on Warp Core I also had to re-learn to use EDA software. I hadn’t done any EDA since college (2007-2008 or so) and the landscape has changed a lot since then. I chose KiCad since it has become a very popular open source / maker solution, and it continues to get better with each release.

Once the design works reliably, final fit and finish tends to be subject to the 80/20 rule: the last 20% of progress toward completion takes 80% of the total work. It takes me much longer to fine-tune parameter ranges, UI functions, and panel designs (particularly on digital modules) than to get to the “80% working prototype” stage. And of course once that’s done, preparing for the realities of a production run takes some effort as well: sourcing and ordering parts, creating a manual, getting marketing stuff in line – it’s a lot of work, but very rewarding.

ES - How did you discover Daisy, and what drew you to it for synthesizer development?

ND - I heard about Daisy around the time of the original Kickstarter but I didn’t actually pick a Seed up until around 2021. I thought it was very cool in terms of being both a development board and a production-capable module with both C++ and Arduino library support and all the core hardware for a high-performance digital audio device.

I didn’t do much with the Seed when I first got it. It wasn’t until the Synthux hackathon in 2022 that I started messing around with it, via the Colorado University (Boulder) group that was participating and opened it up to the public. I got to do a lightning-fast creative project with the Seed and really liked the ecosystem. As someone with significantly more recent programming and DSP development experience than electronics design experience, it provided a great entry point into the rest of the skills needed for Synth development, primarily by taking away the need to design custom mixed-signal hardware from scratch.

ES - Could you tell us more about your experience with and goal for customizing the libDaisy library?

ND - My goal with any customizations of libDaisy is to support the design being developed in the best way possible, whether for one of my own designs or a client project. Sometimes this is for raw performance reasons, sometimes it’s for software development quality-of-life stuff, and sometimes simply to unlock capabilities of the STM32H7 that aren’t available via libDaisy, or even to reallocate certain system resources in other ways. Developing a general board support library with higher-level functions that meet every user need is no small task, and the Electrosmith team have done a great job with libDaisy providing the baseline functions necessary to develop synths and effects units. However, sometimes the performance demands of specific designs require making changes at the library level, since it’s making some decisions for you that are not always easy to change. Stephen (Hensley) has been a huge help providing guidance or starting points for some of the changes I’ve made for various projects.

Sometimes these customizations are things that are easily incorporated back into the mainline library, usually things that are additive and non-breaking changes to the API, or bugfixes. Other times, the changes are specific to one project or fundamentally change the operating model of a particular API/subsystem within the library, and those are harder to submit as pull requests. Regardless, I’m grateful that the library is open-source so these changes and conversations are possible at all. It provides an excellent entry point for developing on the platform that isn’t too restrictive or opinionated - any of it can be changed to better suit a particular project with the right amount of motivation and effort.

ES - Your presence in the Daisy community has been invaluable! Community members are grateful to learn from you on Discord and forum. How did you personally learn about DSP, circuit design, embedded programming, etc.?

ND - It’s fulfilling for me to share my experience with the community, and I’ve learned a lot from others in the community as well. That’s the nice thing about a relatively open platform like Daisy; everyone has different experiences and there’s always something new to learn from everyone. I tend to learn best from examples and from direct experience and guidance, and this is why I like to pay it forward.

I have an academic background in DSP and electronics design. I majored in Electrical Engineering as an undergraduate, and chose more of a DSP track toward the end of the program, as much as I could anyway - there was no choice in some of the curriculum, and a lot of it was very theoretical/research-oriented as opposed to practical. Regardless, it gave me the fundamental education in these topics that has helped a lot today. After that I did a master’s degree in Music Technology which sounds like a studio production degree, but it was actually a lot more like an engineering degree, at least in the lab I ended up in. My research and thesis was focused on signal decomposition and resynthesis using fairly novel methods, and my time in that program furthered my DSP and programming knowledge immensely.

That’s not to say that a formal education is the only way to get into synth development - in fact in some ways I’d say it’s not the best way to do it. To me there’s no substitute for experimentation and direct experience. That’s more or less how I learned embedded development and PCB design. My university programs were much more theoretical than practical, so many of these practical skills were simply not taught in those programs. Although I do have some indispensable foundational knowledge and skills in these areas from my formal education, the majority of what I know about practical circuit design and embedded development is self-taught, with a lot of help and guidance from others in the community over the last few years.

ES - With your experience providing development and consulting services for synths and digital music products, we would love to hear your advice on product development and getting started with Daisy.

ND - I think the best overall advice I can give is: just try things! You will make mistakes along the way, and that’s how you learn. As long as you’re able to figure one thing out at a time, and find something to get excited about and be proud of at every step, you will begin to identify the gaps in your skills and knowledge and the next step or next thing to learn will become much clearer than trying to figure out everything you need to know right away. There will be setbacks, and it’s easy to get discouraged, but it’s important to remember that each failure is a lesson learned. Don’t be afraid to ask for help and lean on others - the synth development community in my experience is overwhelmingly friendly and chill.

On getting started with Daisy, I think it’s always a great starting place to work from existing examples and modify them to do different things as you learnt he platform. Unless you are already experienced with C/C++ software development, there’s no need to dive right into libDaisy and the C/C++ development workflow. You can absolutely have fun and start making some cool stuff using Arduino, Pd/Heavy, or Oopsy, and learn along the way. I always recommend the C/C++ development workflow for production releases since it’s the most powerful and flexible, but you don’t have to start there from day one.

As far as general product development, if you’re considering making something for commercial sale, it’s important to have a realistic business plan and to be familiar with and ready to take on the challenges of production manufacturing and distribution, even at a small scale. Hobby projects are great, but not all of them are destined for commercial releases, and that’s perfectly fine. If I’m being hired to help with technical execution on a project, I like to see that the person hiring me either already has a successful track record of product releases or a solid plan and realistic expectations for their first production launch. Thankfully, there are a lot of successful small synth makers out there in the community that can provide great advice on these things. Being a synth developer requires wearing a lot of hats - engineer, designer, marketer, businessperson, and on and on!

Conclusion

It's both encouraging and inspiring to hear that a developer of an incredible synth like Warp Core believes that one of the best ways to learn is simply to try! Nick's journey serves as a perfect example of how a passion for synthesizers and a drive to learn can lead to the creation of truly unique projects. And along the way, it's always fruitful to ask the community for help. Experienced members like Nick are more than happy to help!

Back to blog