Video presentation I made for the 2024 “Explainable AI for the Arts” (XAIxArts) Workshop, part of the ACM Creativity and Cognition Conference 2024.
A lot of these points I’ve discussed elsewhere (see playlist below), but this quickie presentation brings together these ideas, focusing on the aesthetic potential of this approach.
Check out the complete playlist for more hands-on creation of neurons and neural networks:
Building a matrix mixer in Reaktor 6 primary, and then exploring its possibilities for sound design.
I’ve been a little obsessed with matrix mixers lately, because they feed my desire for unique sound design applications (and feedback). A matrix mixer is a combiner module that can route multiple inputs to multiple outputs, often allowing you to adjust how much of each input signal goes to each output. While sophisticated, they’re pretty easy to build in Reaktor or other software, and can maybe be useful for some next-level synthesis applications.
0:00 Intro / Why Matrix Mixers? 1:18 Starting the Build, Simple Sine Oscillator 2:50 Matrix Mixer Macro 3:55 Visible Ports for Panel Patching 5:37 First Mixer of the Matrix 9:46 Duplicating It for the Matrix 10:48 Matrix Mixer Basics 12:05 Delay and Feedback 15:29 Adding a Second Delay 18:44 END OF LESSON. Unless… 19:59 Adding Ring Modulation 21:43 Building a Complex Patch 24:45 Other Examples of Implementation 25:58 Final Thoughts, Next Steps
Adding some subtle dimension to your synthesized instruments with early reflections.
Synthesized instruments, unlike recorded sounds, have never existed in the acoustic world. This means that these synthesized sounds are 100% direct signal. To add some subtle dimension to these synthesized sounds, then, we can craft some “early reflections” on these tracks.
Here, I demonstrate this concept using ChromaVerb in Logic Pro X.
0:00 Introduction 0:55 Understanding Reverb and Early Reflections 2:18 Creating Early Reflections 3:18 Project Setup 4:26 Early Reflections Aux Track 5:15 ABing on the Synth Track 6:19 Why Separate these from the Main Reverb? 6:40 ABing on the Whole Arrangement
Creating DAW-based feedback loops, then using side-chain compression to regulate them.
Here, working on a project with @SpectralEvolver , I show in Logic Pro X how we can use a compressor side-chained to a beat to control a feedback loop for some noisy, industrial sounding music that sounds evocative of the artist Emptyset. I found this was a great way to create a chaotic sound, but keep it under control (and out of the way of the drums).
0:00 Intro 0:29 The audio tracks 1:15 Side-chain compression 2:03 The feedback loop 3:13 Controlling the loop with compression 5:00 Emptset 5:13 Two aux tracks sending to each other 6:23 A note about time-based effects 6:50 Will it blow up?! 8:06 Closing, next steps
Using Holon.ist, OSC, and Pure Data to send my heart rate from my Apple Watch to the Arturia DrumBrute Impact.
I got an Apple Watch a couple of weeks ago, and, of course, on the very first day I started looking into apps that would allow me to send the data coming from my watch out as OSC messages. After some poking around I found Holon.ist by Holonic Systems, and decided to give it a try.
There’s actually way more in this app than I actually needed (I just wanted to get all the physical data out to my laptop), but it suits the purpose. So in this video, I show a quick demo of getting my heart rate as an OSC message into my laptop running Pd, and then converting it into a MIDI clock for the drumbrute impact.
Sending out raw MIDI data in Max/MSP with [midiout] for system messages and other live control.
Here, I use the [midiout] object in Max to send individual “note on” and “note off” messages, using our knowledge of the MIDI protocol. We can then expand that to algorithmic MIDI control of sequences in the Arturia DrumBrute Impact, including adjusting the clock and the song position pointer for funky, chaotic beats.
0:00 Intro 0:30 [midiout] 0:59 Basic concept – Note On 3:16 Note Off 4:32 Pitch Bend Change 5:32 Exploring Algorithmic Control 6:47 Controling Sequencers (DrumBrute Impact) 7:09 MIDI Clock Message 9:01 Algorithmic Clock Control 10:03 Start, Stop, and Continue MIDI Messages 11:29 Playing with the Song Position Pointer 13:30 Bringing back the Drunk [metro] 15:00 Closing / Next Steps
Doing some “samplecrushing” (downsampling) in Pure Data Vanilla to create dynamic aliasing artifacts.
0:00 Setting up [samphold~] 0:28 Simple downsampling and aliasing 0:55 Building a sequencer 2:33 Making the samplecrush dynamic 3:13 Making it stereo 3:50 Trying different timings and ranges
Combining human input from a joystick with a two-neuron artificial neural network for chaotic interactive music.
This Eurorack joystick is going into a simple neural network to control multiple dimensions of the timbre of this synth voice. Joystick dimensions X, Y, and Z go into different inputs of the Nonlinear Circuits Dual Neuron, and are mixed together and transformed by a nonlinearity (more here). In addition to the output controlling the waveform and filter cutoff of the synth, the outputs of each neuron is fed back into the other, creating a chaotic artificial organism with which to improvise.
Finding and removing subaudio from sample files with a waveform editor.
Subaudio are frequencies below the range of human hearing (below 20Hz). These frequencies can sneak into our recordings, and work against us in a number of ways. If we can address subaudio in our samples, we can do ourselves a favor in the later stages of our mixing process.
0:00 Defining Subaudio 0:59 Example 1: Spotting Subaudio 2:04 Example 1: Doing the Math 2:50 Why Did This Happen? 3:11 Removing Subaudio with Parametric EQ 5:53 Example 2: Not Really Subaudio 7:27 Harmonics of Subaudio 8:31 Example 3: Trimming 9:15 Example 4: Bringing It All Together 10:16 Closing. Next Steps