Main

Generative "Krell Music" in Symbolic Sound Kyma 7 (Infinite Ambient Alien Muzak) | Simon Hutchinson

Using Kyma 7 to create some generative Sci Fi music inspired by Todd Barton's "Krell Music" patch on the Buchla Synthesizer. Once again, I'm back with more ancient music of the Krell. As I mentioned previous weeks, in my regular journeys across the internet, I came across the concept of a "Krell Music" patch--a self-generating patch created by Todd Barton, inspired by Bebe and Louis Barron's soundtrack to the 1956 film "Forbidden Planet." The Barrons' soundtrack to the film is amazing, and a bit beyond what I can get into here (see links below). Barton's Buchla patch tries to capture some of the dynamic timbres of that score. My oversimplification of the idea is this: a note has an amplitude envelope--attack and release--and when that amplitude envelope ends it triggers the next envelope. At the same time, that trigger selects a new (likely different) attack and decay time, as well as a new pitch and timbre for the next note. So we create a continuous series of musical tones, each distinct from the one before it. So, this time, let's make it in Kyma. 0:00 Intro, Overview 1:23 Starting with an Oscillator 1:50 Adding and Envelope 2:30 Retriggering Envelope 4:11 Randomizing Pitch 4:50 Randomizing Envelope Length 5:50 Improving (fixing) Our Envelope 7:12 FM Synthesis 8:25 Adding a Filter 9:03 Delay 9:34 Recap So Far 10:08 Randomizing the Delay Feedback 11:24 Replicator! 12:24 Randomizing Modulation Index 13:12 Closing, Next Steps Making a "Krell Music" patch in Pure Data: https://youtu.be/SydWUqNRqQ4 Making a "Krell Music" patch in Reaktor: https://youtu.be/O0vN0-A3K8o My "Krell Music" Playlist: https://www.youtube.com/playlist?list=PL7w4cOVVxL6EvODlxQe6dcBixROlOD5Rc More on Bebe and Louis Barron: https://en.wikipedia.org/wiki/Bebe_and_Louis_Barron "Krell Music" from the film: https://www.youtube.com/watch?v=mxMACgVyDmU More on the soundtrack for Forbidden Planet: https://www.youtube.com/watch?v=YSFoILcyqAU Todd Barton's YouTube Channel: https://www.youtube.com/user/vgermuse Todd Barton walking through his Krell Patch on a Buchla: https://vimeo.com/48466272 Dr. Jeffrey Stolet’s beginner book on Kyma (affiliate link): https://amzn.to/3SAhYei The best book on synthesis is still Curtis Roads Computer Music Tutorial (affiliate link): https://amzn.to/3FZArJG #kyma #generativemusic #synthesis LINKS: Subscribe: https://www.youtube.com/user/SimonHutc/?sub_confirmation=1 Official Website - http://simonhutchinson.com/ bandcamp (lots of free music!): https://simonhutchinson.bandcamp.com/follow_me Sign up for my mailing list: http://eepurl.com/hVs7bT Buy my old gear on Reverb (affiliate link): https://reverb.grsm.io/simon Buy me a coffee: https://ko-fi.com/simonhutchinson My VoiceOver gear (affiliate links) Aston Microphones Origin (amazon): https://amzn.to/40wQ7Og dbx 286s Channel Strip (amazon): https://amzn.to/3QxZDvN * I provide affiliate links for some products that I use and enjoy. If you end up buying something through these external links, I may earn a small commission (while the price for you remains the same).

Simon Hutchinson

2 years ago

Ok. I warned y'all that I was a little  bit fixated on these "Krell" patches, and I got a bit obsessed with the "ancient music of the Krell", but maybe this is my last video on this for a while. I'm gonna make a Krell music generator-- a Krell music patch--in Kyma. Once again, more details about what this is--the history of this--in my Pure Data video or even my Reaktor video. but the general idea is this is based off of a generative patch designed by Todd Barton for his Buchla synthesizer, w
hich plays a note and then, at the end of that note, it automatically triggers a new note with a  different duration, envelope, pitch, and timbre. This is inspired by Louis and Bebe Barron's  soundtrack to the 1956 film "Forbidden Planet," where there's a brief excerpt of music written  by the Krell, an ancient alien civilization who destroy themselves by focusing on technology  rather than understanding their true nature. Spoiler alert, I guess. Anyway, for today, let's make it in Kyma, and th
en maybe I can rest for a while. Let's start with an oscillator. Command-B. And now let's run this oscillator... ...into a mixer. We're not going to be mixing any  audio, but we're going to need this mixer-- well maybe we will mix some audio, but we're gonna need  this mixer for some SoundToGlobalControllers So now this oscillator needs an envelope. To my knowledge, and again please correct me if I'm wrong, there's no AD envelope in Kyma. There's just an AR. Command-C this... ...and put it in t
here. OK. So there's my AR envelope. And so I don't have, uh, MIDI setup  here but I can set up a button that has a gate. Let's just set scale to be 1. And now if I play this: We get our sound coming out. OK. So now what we want is we want this to trigger itself. So we want when this AR reaches 0, we want it to re-trigger that AR--that envelope and also you know choose a new note. One thing at a time, perhaps. Let's start by doing a SoundToGlobalController. Command-B "soundto" SoundToGlobalCon
troller. I'm gonna throw this friend in the mixer, and then I'm gonna call it... "EOC" for end of cycle. And, as an input, I'm going to  take--Command-C on that AR-- I'm going to take this AR and put--I I had some issues with this until I put that "L" there, right? Because, uh, you want to make sure it only knows it's in one channel. And then we will generate an event called "EOC", but let's do one more thing. Let's say when our AR...  equals zero. And that'll trigger that end of cycle. Then w
e can set this... as an !EOC here, as the gate. I--I'm gonna do "smoothed" here, and I'll talk about that in just a second but... Since this isn't a trigger. It's a gate, right? Because this is an AR envelope not an AD envelope, we need to be a little bit more clever about how we do this. But I'll get to that in a second. So now if I could play this... Hey! We've got it self-triggering! Let's go to our oscillator now, and let's set this to be !EOC "next"... "Random." So now when it gets that
trigger, it'll  choose a random number -1 to 1. But we don't want -1 to 1, so let's  multiply it by 44. So we get -44 to 44. and then we can add 65, which is a--this sets  it to be about the range of piano. Note number. I'm never sure about my parentheses, but  better to be careful. So now let's try this: OK. Neat. Let's set our ReleaseTime to be end of cycle... now... I messed around with this, and I  tried to do a "nextRandExp." And so this is an exponential function. This is a different  ran
dom. It chooses a random number I believe 1 to 24. I'm sure there'll be a subtitle on this  video if I've got it wrong, um, but... Let's--That's probably too much actually, so let's take that, and let's--let's halve it. OK. And let's see how this does. Hey! Now we're getting somewhere. So I could, similarly, do this... uh, but I'm gonna give myself  some problems with this, but let's try it at first. Now, you'll notice it's not getting to the  top of that attack time before it starts in the rel
ease time. So the way I solved this was  I actually created another global controller, which I'll call "AttackTime," and now we will take... this. We'll call this "!AttackTime." I'll go into here. My value will be that  expression, and I'll generate that !AttackTime. So now this takes that expression,  generates that attack time, and now instead of smoothing this for the generic... I can't remember what it is. I think it's 200 milliseconds. I'm going to smooth it for the !AttackTime. All right.
Now we've got random envelopes and random pitches. Now to get ourselves a little bit more... Krelly, Oops, I just typed "Krell" into the find object. Let's find another oscillator. And pop this guy in here. OK. And now what we're gonna do is we'll do some frequency modulation. Uh... I don't know. Let's put in 10 there. That's going to be pretty significant. Uh, and then for this... Let's steal our frequency from there. Go to our modulator oscillator... and throw that in there. So this is my
modulator. And so I've just set the envelope to be  one and the frequency there to be random. And then this one, the envelope is coming from the AR, and the frequency is a different random number. This might be too much. Let's listen I think--I think that sounds pretty great. Usually the last step in our  Krell patch is we can do a filter. I'm just gonna do a low-pass, and then what  we'll do is we'll take our expression here, and we'll throw it into this frequency.  Let's give it a little bit o
f resonance. Uh, a little bit less slope. Low pass. Let's see how that did. I mean, to make it sound like... 1950 sci-fi ,we need some delay in here I think. And of course, you know, if I were doing this seriously, I'd-- I'd mess with my delay settings a bit there. But the key here, once again, is this AR envelope. So we have it go into this SoundToGlobalController, which is looking for when it gets to zero. When it does, it generates a sort of trigger at this GeneratedEvent !EOC, and then, on
ce I have that EOC, I can send that wherever the heck I want. In this case, to set the AttackTime. In this case, to set the ReleaseTime. In this case, to set the frequency of my modulator. In this case, to set the frequency of my carrier. I mean, I could have it set the feedback delay here too. You know, maybe we could set this to be !EOC... "random"... Oh, sorry, I need to go "next"--  because it's a trigger, right? "nextRandom"... Times 0.4, plus 2. It's complaining  because I don't have my
parentheses in here. 0.2 I think that should work. Let's find out. Yeah. I'm not sure how I like that  change in the delay on the fly, but... Now, of course, because we are in Kyma... We should do this. We should find a pan... ...and then replicate the heck out of this. "Replicator" Bink. I'd make that, uh... pan into a variable. Replicator. How many do we need? I think we need eight.  I think that's what the Krell would do. Roll the dice. And now here is the ancient music of the Krell! Could ev
en do an ambisonic version of this,  where I pan them different ambisonic locations. Uh, since I'm replicating, let me do a couple of things here. Let's take this modulator, and let's set it's  envelope to be random. !EOC "nextRandom"... times 0.5... plus 0.5. So now we've got a random envelope in there. The amount of modulation, right? But there you have it. Once again, the ancient music  of Krell, this time down in Kyma. I think I'm going to take a break from Krell music for a while. Not that
it's out of my system, but I'm sure you're not interested in it anymore. Again messing with these numbers a little bit --messing with these random ranges-- is going to have a big effect on the music you produce. Changing from pure random numbers to smooth random numbers, there's all sorts of ways you might expand on this and make it your own. I hope that I've shown, by doing  this in Pd, in Reaktor, in Kyma, that it's not about the software that you choose. We can take a concept and apply it
to whatever system we're comfortable with, whatever system we feel like we can express ourselves in. Let me know what you come up with. That's all I got for today.

Comments

@petejohnston5880

Hi Simon, Kyma doesn't have a AD but does have an ADSR which make a better AD and better AR as well. To make either an AD or and AR take an ADSR and set decay and release to the same value. Set sustain to 1.0 to make an AR and to 0.0 to make a AD. ADSR is not that much more processing power and give you the option of largo if you want or don't want retrigger when new cycle.

@SpectralEvolver

Ah! Now I speak the language of the Krell. Up until this point it was a beautiful, distant abstraction. Well done yet again my friend!

@BartonPriscillaMcLean

I Like the way you present your material--very concise, clear, interesting, and approachable. All Kyma users should look at this as a template for how to approach sound-building. --Bart McLean

@crysstoll1191

Very cool. Likely there is also a MAX patch just like it? There was a VST called Altair 4 that was good at such stuff (not as advanced as this).