A Pure Data interactive system that plays hardcore drumbeats when it’s not receiving any audio input.
At the start of winter break, I wanted to make some music and burn off some steam. The “Interactive Hardcore Music System” was the perfect solution for both. Here, I talk through the Pure Data patch explaining how it works and how I’ve used it, and waxing philosophical about how things don’t need to be complicated to be sophisticated (and musically expressive).
Get the “Benjolin Synthcore” album on bandcamp:
More Pure Data Tutorials on YouTube:
0:00 Intro/What is this thing? 1:41 Input section of the patch 4:30 Interaction with Logic Pro X 4:53 Compression as secret sauce 6:03 Creating the beat (probability gates) 7:34 The results 8:13 Other examples 9:25 Closing: Sophisticated ≠ Complicated
Creating an ambient music machine in Pure Data Vanilla with a “clamping VCA” that adds subtle distortion, imitating the envelopes in Roland TR-808.
I made a clamping VCA in Reaktor a few weeks back, and now here’s another example in Pd. Normally, amplitude envelopes in synths are a control envelope on the amplitude of the signal. When we use a “clamping VCA”, though, instead of controlling the amplitude of the waveform, we clip it at the desired maximum envelope. This means, when the VCA is all the way up, it sounds the same, but during the attack and release, we’ll get the addition of subtle (or perhaps not-so-subtle) distortion to our waveform.
I use [clip~] in Pd to achieve this effect, stealing the idea from Noise Engineering’s “Sinclastic Empulatrix” module, which, in turn, stole the idea from from the Roland TR-808 drum machine’s cymbal envelopes.
Using the latency from videoconferencing software as a delay for feedback loops, this time with Kyma 7 processing the signal at both ends, creating (noisy) evolving sonic textures.
During the pandemic, conferencing software quickly became a required part of work and education culture.
Of course, this technology’s ability to keep us connected has been and important part of keeping people safe, but we’ve also discovered the quirks of this mode of communication. Being bound to this remote interaction inspires curiosity about its potential for collaborative creativity. Musicians have know for a while about the issues of internet latency in coordinating remote ensembles, but what if, instead of attempting to recreate the conditions of a traditional performance in this new medium, we embraced the “space” created by this conferencing software?
In this performance, the audio signal is sent between the two Kyma systems, creating a feedback loop.
Feedback loops, such as when we put a microphone close to a speaker, emphasize the resonant frequencies—the imperfections—of a system. As we know, the audio of conferencing software is an imperfect connection, with latency, filtering, and audio compression artifacts.
This conferencing-software feedback loop, then, emphasizes these imperfections, bringing out the character of this communication medium as an emergent soundscape.
Doing some live processing of sleigh bells in Pure Data to create an “Interactive Holiday Noise Music System.”
Since it’s mid-December, let’s make some holiday music. If you’re sick of the standard cloying Muzak fare, though, you can make your own feedback delay sample-crushing interactive music system in Pure Data in an afternoon.
The main point here is getting a “trigger” from audio input crossing a loudness threshold. Once we have that trigger, we can use it to make changes in live-processing of a sound and trigger other sounds too. This is a simple idea, but its effectiveness is going to depend on what these changes are and how we play with the system.
0:00 Demo 0:26 Introduction / Goals 1:23 Input Monitoring 2:41 Direct (“Dry”) Output 4:08 Feature Extraction with [sigmund~] 6:55 Amplitude as Trigger 8:43 Triggering Changes in Delay 12:44 Sample-Crushing 17:03 Triggering an Oscillator 19:37 Oscillators into Harmony 23:35 Putting it all together 25:33 Closing Thoughts
Building a “clamping VCA” in Reaktor for subtle distortion, imitating the envelopes in Roland TR-808.
Normally, an amplitude envelope for your synths are just that: a control envelope on the amplitude of the signal. When we use a “clamping VCA”, though, instead of controlling the amplitude of the waveform, we clip it at the desired maximum envelope. This means, when the VCA is all the way up, it sounds the same, but during the attack and release, we’ll get the addition of subtle (or perhaps not-so-subtle) distortion to our waveform.
I use the “Mod. Clipper” in Reaktor 6 to achieve this effect, stealing the idea from Noise Engineering’s “Sinclastic Empulatrix” module, which, in turn, stole the idea from from the Roland TR-808 drum machine’s cymbal envelopes.
0:00 The “Mod. Clipper” 0:33 Clamping VCA 1:25 Simple Sine Oscillator 2:03 Mod-Clipping the Sine Wave 3:51 Standard VCA for comparison 4:58 Pulse Wave 5:41 Sawtooth Wave 6:34 Adding a Filter 7:35 Next Steps
Creating a 15-channel generative melody in Symbolic Sound’s Kyma 7.
I edited some pitches from the Schlappi Engineering Interstellar Radio into loops, and mushed some nature sounds together using Kyma’s SampleClouds. Now, by putting an amplitude generator on these two loops I can create a hybrid musical instrument of these two sounds. Take 15 pitches, 15 patterns of envelope, and send it to 15 speakers and we’ve got some Brian-Eno-style generative music with a constantly changing timbre.
Listening to electromagnetic radiation around the house using a homemade elektrosluch.
I was cleaning up, and found an “elektrosluch” that I made a few years back, and figured I’d dust it off and make sure that it still works. This is a device designed by LOM-Instruments that converts the vibration electromagnetic fields into sound (specifically vibrations of voltage that we can listen to through headphones, more info here ).
Adding envelopes to our synthesizer that aren‘tan ADSR.
ADSRs might be the envelope generators that we encounter most often, but they’re not the only way to shape our sound. There are a number of other musical ways to craft change in our synthesizer over time with these non-periodic TVCs.
Let’s check out what other options there are in Reaktor 6 primary.
Coding (well, “patching”) an artificial neural network in Pure Data Vanilla to create some generative ambient filter pings.
From zero to neural network in about ten minutes!
In audio terms, an artificial neuron is just a nonlinear mixer, and, to create a network of these neurons, all we need to do is run them into each other. So, in this video, I do just that: we make our neuron, duplicate it out until we have 20 of them, and then send some LFOs through that neural network. In the end, we use the output to trigger filter “pings” of five different notes.
There’s not really any kind of true artificial intelligence (or “deep learning”) in this neural network, because the output of the network, while it is fed back, doesn’t go back an affect the weights of the inputs in the individual neurons. That said, if we wanted machine learning, we would have to have some kind of desired goal (e.g. playing a Beethoven symphony or a major scale). Here, we just let the neural network provide us with some outputs for some Pure Data generative ambient pings. Add some delay, and you’re all set.
There’s no talking on this one, just building the patch, and listening to it go.
0:00 Demo 0:12 Building and artificial neuron 2:00 Networking our neurons 3:47 Feeding LFOs into the network 4:20 Checking the output of the network 5:00 Pinging filters with [threshold~] 8:55 Adding some feedback 10:18 Commenting our code 12:47 Playing with the network
Creating an artificial neuron in Pd:
Pinging Filters in Pd:
More no-talking Pure Data jams and patch-from-scratch videos: