Forums ← News ← Team Notes: First post!

randy
Fri, Nov 28, 2025, 12:10

I'm starting Team Notes as a place for me and other folks on Team Madrona Labs to post more casual things for a smaller audience. If you're seeing this, I guess you're that audience. Welcome!

Typical posts might be special interests within our special interest: technical details about making the software, or about making the coffee, what we're listening to, rants on technology and how it's making everything better or making everything worse, recipes... you get the idea. If there's anything you've always wanted to know, please reply here with your ideas!

This orange clipboard has my notes from the current Sumu optimization. I'm figuring out how to run four of the Moog filters in parallel in around the time it previously took to run one, and thinking about how to generalize this solution in an elegant way. I still do big abstract thinking much better when I'm using actual pen and paper.

Making code faster with SIMD (Single Instruction, Multiple Data) processing is something I've enjoyed doing since Motorola first released their Altivec-enabled PowerPC processors. From Altivec to SSE and AVX and ARM NEON, the SIMD concept has remained largely the same across processor generations for the last 25 years. Compilers have gotten better at optimizing C++ code for SIMD, but to get the fastest results, the right algorithms and data structures have to be picked to kind of make the CPU happy, which is much higher-level thinking. And zooming out even further there are more human-centered tradeoffs to think of: what kind of code reduces the potential for bugs, what is redadable and maintainable, what will be easy to learn for new people coming aboard the project? Are we optimizing for just the latest Apple machines, or do we want this stuff to be runnable on a ten year old ThinkPad? The questions may start out purely technical, but very soon the answers start to reflect an organization's values.

Sumu makes heavy use of SIMD already in its oscillator banks. But the 4x filter object is one that had to wait until after the initial release. Between this and other optimizations, Sumu 1.2 will use around 30% less CPU than 1.1.3. And there's more optimizing to come. My goal is to run it on this ten year old ThinkPad over here!