Scatterbrain's Brains
Let me tell you more about Scatterbrain, a new plugin that:
- Slices a sample into transients
- Detects the pitch of each slice
- Maps each slice to its corresponding key
It's easy to misunderstand what's happening with this plugin, so let me try to spell it out better than I have in my posts on ig, tiktok and youtube.
If the input sample is a vocal track, and the singer hits a C3 note, even for a moment, Scatterbrain will find that moment and map that slice to the C3 key. Then, when you press that key on your MIDI controller or draw it in a piano roll, you play that slice.
If Scatterbrain finds many examples of, for example, a C3 note in the input sample, it will map all of those slices to the C3 key as round robins, so that each time you press the C3 key, you get a different slice. (That is what the columns of squares in the demo video represent; each square is a slice that hits the same note.)
This alone, for me, is extremely fun to play with and opens up a ton of possibilities. Imagine you are working on a song in, say, C Major, and Scatterbrain has mapped 12 slices of C3 notes from a given sample to your C3 key. If you play C3 on every eighth note, you get an interesting and surprising rhythm and texture that changes on each hit, but always stays in C3.
I personally love chopping vocals by transients or beats and playing the chops on pads, but that is not what this plugin does.
The point is to use samples more musically than simple chopping tends to allow. With Scatterbrain, you can play a melody on your piano keys, a melody that fits your song's scale and fits with your chord progressions. You can even use it to play your chord progressions.
The point is to use everything a given sample has to offer, rather than taking one slice and mapping it across all of your keys, resulting in a boring sound that is chipmunks on one end of the keyboard and distorted on the other.
And the thing is, Scatterbrain is somewhat restrictive. If you give it a sample that only contains three or four notes, by default it is only going to give you three or four notes back. You can increase Scatterbrain's Maximum Pitch Shift dial, which goes from zero to eight semitones, to force those notes to cover more keys, but in my opinion, if you need to push that dial above 2-3 semitones, you need a better input sample, one that has more range. Because the point of this plugin is to sound real and organic and authentic, and to avoid extreme pitch shifting altogether. The resulting sound is not a replacement for a singer, of course. As you can hear in the videos I have posted, the sound is strange and uncanny, for sure, but also real.
The restrictiveness of Scatterbrain may be frustrating for some, but it can also force you to come up with creative solutions. For example, if you have a great sample but it only contains a few notes, you can combine that sample with other samples that have more range. That gets into the realm of mixing sounds with Scatterbrain, which is a vast area of possibility, and one I will cover in more depth in a future newsletter.
Who is MANY HEADS
My name is Keith and I am a solo developer.
I have been a software engineer and designer for the past 20 years or so, focused on creating interactive news and information graphics for national publications since 2013.
I have also been making music for most of my life. In the late 1990s and early 2000s, I rapped, made beats and regularly performed at hip hop shows in Philadelphia. Since then, I have remained a hobbyist musician with no goals or releases; just vibes and love of the game.
To be honest, I would prefer to remain somewhat anonymous under the MANY HEADS banner, which is the name I now use both for this small software business and for my music (if I ever release any lol). My preference is partly because I do not want my business to seep into my personal life, and partly because the nature of my day job necessitates that I limit my personal online presence and keep my opinions about politics and world events to myself.
But I recognize that we are now living in an era of AI slop, and we are all being flooded with vibe-coded plugins, extensions and devices, sometimes made by people who frankly have no idea what they are doing, and I think it's important to be transparent about who I am and how I am building this software.
I got interested in developing plugins about a year ago, after making a few Max for Live devices for fun, really just to inspire new song ideas or speed up some of my usual Ableton workflows. I decided to sell my first product, a Max for Live device called Concentrate, simply because I found myself using an early version of it so often that I thought others might use it too.
I also recognized that my skillset and life experience made me well suited to plugin development. After all, what is a plugin interface if not a series of complex ideas made accessible and easier to understand?
My expectation was that a dozen or so people might buy Concentrate, but as the word spread about it, the sales spiked, to the point that I had to rush to improve my website and register my business as a legal entity. I have since released three major updates to Concentrate and will continue to keep it updated for the hundreds of people who have purchased it, to make sure it is always as useful and performant as it can possibly be.
Scatterbrain's Brains
When I first got the idea for Scatterbrain, which was born out of the limitations of my own sample-chopping workflow, I wanted it to be another Max for Live device, since Ableton Live is my DAW of choice and I much prefer to use devices that fit into its UI rather than floating plugin windows. But I quickly learned that the limitations of Max itself, and Ableton's Live Object Model, would not allow me to make the plugin what I knew it could be.
I turned to JUCE, a wonderful open-source C++ application framework for building high-performance audio plugins. A major draw for me was that JUCE has a native web view, which allowed me to build Scatterbrain's interface with JavaScript, HTML and CSS, which is my primary comfort zone. (I use the Svelte framework for reactivity and component-based architecture.)
Once I had the scaffolding set up, I had to learn the state of the art for transient and pitch detection. I do of course use AI assistants when I code, and believe it would be foolish not to, but I also would not be comfortable selling software if I didn't understand each line of code behind it. So this has been a process.
For transient detection, I learned a lot from Sebastian Böck's research on onset detection. His SuperFlux algorithm and the adaptive peak-picking approach used in the madmom library helped me get a better understanding of the concept. I tried a handful of approaches, from simple broadband energy differencing to full onset-detection networks, and for now I've landed on a mix of methods that have been getting great results.
For pitch detection, the best research I've found comes out of Masanori Morise's WORLD vocoder project, specifically the Harvest f0 estimator, and I've tried that alongside more classical approaches like YIN, and for now have landed on a modified implementation of Harvest.
The hardest part, by far, has been the pitch detection and mapping logic, not the plugin-building part. Getting a computer to reliably say "that's a C3" from a two-hundred-millisecond slice of a real vocal or instrument recording, with vibrato, breath noise and bleed from other notes all in the mix, took a lot of trial and error. A big breakthrough was realizing that I could leave some of the decisions up to you, the musicians who will use this plugin, by creating dials that let you choose how confident Scatterbrain must be about the stability of a note, how tonal a moment needs to sound before it counts as a real pitch, and how much weight to give each factor when Scatterbrain is deciding which slices deserve a spot in the round robin.
Scatterbrain is still in active development, and I'm being deliberate about not shipping it until it feels as solid and dependable as Concentrate does. But it's close enough now that I wanted to start writing about it properly, instead of just dropping clips on social media and hoping the concept lands.
Please stay tuned 🙏