All sound can be broken down into individual frequency components, and the lowest frequency component of a sound is called the “fundamental” (all the frequencies above that fundamental frequency are the “partials”). By cleverly setting the relationships of the amplitude and frequencies of the harmonic spectrum, though, you can trick your ear into hearing the pitch of a sound as an octave below the lowest frequency component.
Here, I’ve built a quick demo in Reaktor 6. Listen and see what you think.
A simple digital feedback patch in Pure Data build from just delay, ring-modulation, and saturation.
Building on my digital feedback video from a few weeks ago, here’s a quick patch for setting up a dynamic controllable feedback loop in Pd Vanilla. I’ve set up a way to get things going with a little sine-wave beep, and you can hear that the feedback loop makes things pretty complex pretty quickly. WATCH THOSE LEVELS! It gets loud in the middle.
Recently, I’ve been hooked on the idea of neurons and electronic and digital models of them. As always, this interest is focused on how these models can help us make interesting music and sound design.
It all started with my explorations into modular synths, especially focusing on the weirdest modules that I could find. I’d already spent decades doing digital synthesis, so I wanted to know what the furthest reaches of analog synthesis had to offer, and one of the modules that I came across was the nonlinearcircuits “neuron” (which had the additional benefit that it was simple enough for me to solder together on my own for cheap).
Anyway, today, I don’t want to talk about this module in particular, but rather more generally about what an artificial neuron is and what it can do with audio.
I wouldn’t want to learn biology from a composer, so I’ll keep this in the most simple terms possible (so I don’t mess up). The concept here is that neuron is receives a bunch of signals into its dendrites, and, based off of these signals, send out its own signal through its axon.
Are you with me so far?
In the case of biological neurons these “signals” are chemical or electrical, and in these sonic explorations the signals are the continuous changing voltages of an analog audio signal.
So, in audio, the way we combine multiple audio source is a mixer:
Now, the interesting thing here is that a neuron doesn’t just sum the signals from its dendrites and send them to the output. It gives these inputs different weights (levels), and combines them in a nonlinear way.
In our sonic models of neurons, this “nonlinearity” could be a number of things: waveshapers, rectifiers, etc.
In the case of our sonic explorations, different nonlinear transformations will lead to different sonic results, but there’s no real “better” or “worse” choices (except driven by your aesthetic goals). Now, if I wanted to train an artificial neural net to identify pictures or compose algorithmic music, I’d think more about it (and there’s lots of literature about these activation function choices).
But, OK! A mixer with the ability to control the input levels and a nonlinear transformation! That’s our neuron! That’s it!
In this patch, our mixer receives three inputs: a sequenced sine wave, a chaotically-modulated triangle wave, and one more thing I’ll get back to in a sec. That output is put through a hyperbolic tan function (soft-clipping, basically), then run into a comparator (if the input is high enough, fire the synapse!), then comparator is filtered, run to a spring reverb, and then the reverb is fed back into that third input of the mixer.
Now, as it stands, this neuron doesn’t learn anything. That would require the neuron getting some feedback from it’s output (it feeds back from the spring reverb, but that’s a little different) Is the neuron delivering the result we want based on the inputs? If not, how can it change the weights of these inputs so that it does?
Building some feedback loops in the digital domain using Symbolic Sound’s Kyma 7.
In audio feedback loops, the output of the system is fed back into an input. We’re probably most familiar with this when we put a microphone in front of a speaker and we get the “howling” sound. Here, though, I’m intentionally building digital feedback loops in order to explore the sonic possibilities of these rather unpredictable systems.
In order to keep my feedback loop interesting, though, I need to keep it from dying away to silence, or blowing up into white noise. By considering the different processes we apply to the audio in the loop (are they adding spectral complexity or removing it?), we can try to make feedback patches that are dynamic and interesting over time.
0:00 The Continuum of Spectral Complexity 3:13 Staring with an Sine Wave in Kyma 4:45 Delay with Feedback 5:49 Building Feedback Loops Manually 8:40 Ring-Modulating the Feedback 11:20 Gain and Saturation 14:22 Exploring the Sound 16:16 Filter Bank 19:05 Jamming with the Patch 22:18 Thinking about Control 23:25 Performing the Sound 26:34 Feedback Loop with Reverb 28:10 Making it into IDM with the Chopper 29:22 So What? Next Steps