MaxForLive: Creating Your Own Audio Tools in Max For Live | Jason Allen | Skillshare

MaxForLive: Creating Your Own Audio Tools in Max For Live

Jason Allen, PhD, Ableton Certified Trainer

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
42 Lessons (4h 53m)
    • 1. 1 Intro

    • 2. 02 InANutshell

    • 3. 03 10kView

    • 4. 04 WhatWeCanDo

    • 5. 06 MaxVsM4L

    • 6. 07 HistoryOfMax

    • 7. 08 MaxForLiveDevicesV2

    • 8. 09 LoadingMaxDevicesV2

    • 9. 11 StartingFromScratch

    • 10. 10 FindingDevices

    • 11. 12 GettingHelp

    • 12. 13 EditingAndPresentationMode

    • 13. 14 TheMaxEditorAndPatching

    • 14. 15 ObjectsAndArguments

    • 15. 16 Messages

    • 16. 17 BangsAndButtons

    • 17. 18 HowToLearnMax

    • 18. 19 HowToApproachAPatch

    • 19. 20 DelayingMIDIMessages

    • 20. 21 AddingDryWet

    • 21. 22 WhyNotNotein

    • 22. 24 ArpeggiatorWalkThrough

    • 23. 25 DelayingNotes

    • 24. 26 transposingNotes

    • 25. 27 DeployingAndEncapsulating

    • 26. 29 TildeAndYelloPatchChords

    • 27. 30 AudioUI

    • 28. 31

    • 29. 32 DelDelayTapinTapout

    • 30. 33 VolumeControl

    • 31. 34 AudioToggle

    • 32. 35 MultiTaps

    • 33. 36 Presentation Setup

    • 34. 39 Abstractions

    • 35. 40 M4LListofAbstrations

    • 36. 41 M4LPatches

    • 37. 43 ControlAnyParameter

    • 38. 47 Filtergraph

    • 39. 48 FindingBeats

    • 40. 49 ControllingFiltersByTheBeat

    • 41. 51 ThanksBye

    • 42. SkillshareFinalLectureV2


About This Class

For years I've been teaching Ableton Live and Max in the college classroom. As a University Professor, my classes are sought after, and, frankly, expensive. I believe Ableton Live can be learned by anyone, and cost shouldn't be a barrier. This class uses the same outline and syllabus I've used in my college classes for years, at a fraction of the cost.

MaxForLive is a powerful tool that lets users design their own instruments, effects, and devices. It isn't without its drawbacks: MaxForLive is notoriously difficult to learn. I've developed an approach for teaching MaxForLive that focuses on teaching it like a language: You will learn small blocks and patches, understanding the how and the why along the way. As we grow our vocabulary, we "learn how to learn" more and more.

Topics include:

  • The unique and quirky history and development of Max
  • What we can do with MaxForLive
  • Max vs. MaxForLive
  • The MaxForLive Devices
  • Finding and Sharing MaxForLive Devices
  • Getting Help: Help Windows in MaxForLive
  • Presentation Mode & Patching Modes
  • The Max Editor
  • Messages
  • Bangs & Buttons
  • Project 1: Building a MIDI Delay
  • Project 2: Building an Arpeggiator
  • Working with Audio Signals
  • Project 3: An Audio Delay
  • ~ Objects (tilde objects)
  • Presentation Setup
  • Controlling Live
  • Abstractions
  • Controlling anything in Live
  • Project 4: A Beat-Quantized Randomized Filter
  • Finding the Beat from Live
  • Project 5: Artificial Intelligence (sort of)
  • ... And much more!!!

Also included in this class are 6 of my own MaxForLive patches for you to download, dissect, use, and build on.


1. 1 Intro: here is getting the audio signal from live for this track and down at the bottom, sending it back. Very importantly, which is the banks. You give it anything and it goes a bank. It's kind of like the whole door of Max. If your a game of Thrones fact fan, remember the character Hodor? All he knows how to do is say hold or but it's kind of the answer for everything. It's a lot like that so you can give it a whole bunch. What if we wanted to build a way to be able t decide whether or not we want to hear that dry signal, right? This will be fun. This is the heart of my arpeggio right here, because I've got my delay stuff For all my mini values, my transposition and my delay amount of stealing volume scaling the volume is gonna be a little trickier when we go into these other taps because we wanted to be, ah percentage of this one all the time. So we're going to do a couple of tricks there, but its OK will be fun. So scaling the volume of that one, send it a message for what kind of filter you want. You can directly control the gain Que cut off frequency. You can actually use this cascade tool to string. A whole bunch of transport is basically talking to live transport. We've got it set up. So we've seen I think we've seen metro before. Metro is just a metre. My filter moves around. So this is maybe somewhat interesting. Way this gets interesting is if you put like a beat on this and change it to 1/16 note, it starts doing that. Everyone, welcome to this class. Uh, what you're hearing here is just a patch I made at the end of this class. So actually make the class and then jump back beginning and make this intro video. So, um, this is a patch where I've got Max for live deciding how to control the panning, the volume and launching clips, even the track names on its own. It's totally just deciding on its own one to do this. No, By the time we get done with this class, you're gonna understand how everything in this patch works. You're gonna be able to do this. Um, this is kind of a silly example of the things you'll be able to do. But this class is, um, I've taught this class in person a bunch of times. Um, it's hard. It's hard to learn Max in a short setting like this. But I have this this motto that I use for teaching Max all the time, whether it's a short class or long class, and that that theory is that you can't possibly learn Max in a short amount of time or even a year, you know, it's it's an ongoing thing. You're always learning new stuff. So what my goal is for this class in the way that I teach it is not teaching you to memorize what objects do, how the language works and all that stuff the way that I teach it is. I want you to understand a how to think like Max for live and be, uh, how toe learn, Max. That's what I want you to know is how to get inside of Max for live and know what you don't know. And I know how to find the answer. So I teach this class a lot by I'm gonna show you how to look stuff up I'm also going to show you, you know, ah lot about how it works. Um, and what objects are and all these other things. But in the end, you're not going to know everything you need to know about Max for live to be able to launch rocket ships with Max for live. But, um, you will know how to find those answers. Anything you need. That's what we're going to dio. I'm gonna show you how a lot of stuff works. We're gonna make a ton of patches. I think we've got 12345 66 patches that we make in the process of this class that also give you my version of the download and pick apart news for whatever you want. Um, so a lot of patches, we're gonna be building stuff. We're gonna make stuff. We're going. Teoh, uh, we're gonna learn how to learn Max Max for live. Um, that's what this is all about. And I am 100% confident that the end of this you'll be able to make some really cool effects. Some really cool instruments, some really cool midi effects that you can't find elsewhere. That one weird thing that you want to do that no plug in maker has sat down to build. Uh, that's what you can dio. That's what you could do with Maxwell live. You can do anything you can imagine, uh, in able to live once you know how to program Max for live, and it's not as hard as you think. It's actually, you know, if you've looked at other programming languages before, it's one of the easiest ones because it's not really like a language that you have to type lots of stuff. It's little blocks that you look together. You'll see, Uh, so let's dive in and let's start learning Max for live. This is gonna change your life. 2. 02 InANutshell: All right, let's get started here. What is Max for live? So, um, it's kind of two things. One is that it's a way for people to make their own devices and share them. And so there's this huge sharing community of people that have made cool things and then sent them out into the world. I'm going to show you where to go and find some of those things shortly. And the other thing is that it's this authoring platform, which is a fancy way to say away to create bangs. Um, which is, Ah, another way to say it's a programming language. But don't let that freak you out. If you've never programmed at all in your life. Don't worry. Um, this is what's called a graphical programming language. So it's not like you're gonna be sitting there writing code when you do this. It's more like the analogy that I use for the Max language is that it's more like, um, you've got, like, let's say, let's imagine you're a guitar player and you've got, um, you know, five or six affects pedals right, and you're going to run your signal into the first pedal on the second pedal in third pedal , fourth pedal, fifth pedal. And then at the end of that one is going to go out into your amp. Right. It's more like that, except our pedals are much more complicated, and we can use a lot more of them. Um, so we might have these five pedals, but then we might also have a pedal that multiplies pedal to bipedal four. And, you know, we can do these things, and we can just experiment with doing that and make these incredibly good sounds. Right. Um, just by having complete control to design our own stuff. So, um, basically, what we're doing here is we're designing sort of plug ins right there. Um, they're not, strictly speaking, plug ins, because they're only gonna work in a Bolton. Um, but they're gonna function just like any of your other audio effects or midi effects or instruments, depending on how you do it. So we can have three kinds of max for live devices, right? We can have instruments, midi effects and audio effects. Right. So, um, we're just kind of quickly talking about what? What Max looks like. So what I'm gonna do here is um I threw up one device here. This is just a simple gain, right? Nothing fancy here, so I can play my track. Right? And the audio goes just like any other device. The audio goes in and goes out, and it's going through my device. Now all I have here is, ah, way to control the game, right? Nothing fancy. But what if I wanted to do something with it? This is what you can't do with any other device. What I could do with a Max for live device is I can open it up. So now I'm looking at the editor. Don't let this freak you out yet. Don't worry. Um, I'm just looking through here, and I'm gonna show you what it looks like on the inside of a patch, so you don't have to understand any of these things, but basically, we have here. We have the sound coming in. It's going into my gain slider. Oops. And then it's going out. Right? So what I can do now is I can unlock this and I can add in more stuff, right? So let's say I wanted to do something else in here. I can just pull this down. Here's my patch cables right there carrying my audio signal. Let's say the left one. I got a stereo signal here. It's get out of that one. It's now we only have a model signal. And let's add, I don't know. Um, let's do something obvious. Let's add an e que Teoh. Only my left side. I don't know why you'd want to do that, but just for an example. So this requires two objects. We're gonna talk about how all of this works in a minute. So I'm not even gonna tell you what to worry about here. Okay, So now I'm gonna run my signal. My left channel. I just kind of hover over the bottom here. If I can find it here we go into this by quad and then back out into the output, right? No, I have a filter. Right. So just super simple, you know, kind of 10,000 foot view of what this looks like. But remember, Max is a programming language that works based around objects. Right? So we have all these different objects. We could do a bunch stuff with him, and we can make essentially plug ins. We could make effects. We could make instruments. We can do all kinds of crazy stuff 3. 03 10kView: Okay, let's take another quick look at another patch before we get into more of the nitty gritty . I just want to get you a little familiar with seeing these patches. First of all, we call Max files. I guess we call him patches in the same way that enabled him live. We call. Ah, we call it a set. You know the thing? We're working on the file. We call it a live set, right. And Max, we call it a patch. Um, so I've got a couple patches here, Um, in this list that that I've installed. But I just want to show you this one now, so we're just gonna look at a couple of these. So this one is a delay line. It's an audio delay so I can play a signal through it. So I've got a left and a right and again so I can adjust my gain. I can turn up the left that I could turn up to write a different amount. Here we go. Go. So let's have a look at what it looks like under the hood. So I click this button here to see it. It's kind of like a square or a rectangle with lines coming out of it That takes us into the patching mode. And now, if I really want to see it, I'm gonna go over all this again. So don't worry. I'm just kind of, you know, quickly introducing this to us who want to see it. I click this button to go in a patching mode, and now I can see the hidden stuff. Right. So here is getting the audio signal from live for this track and down at the bottom, sending it back to live. Here's our gain. No problem there. Right? So I've got a left and a right coming out of the game and a left and right coming in. So we've got a stereo gain slider here till we call that. And then in this box here, we have two objects. This is a tap in, and this is a tap out, and we've got this delay knob hooked to them. So you can probably assume that these are controlling the audio delay to some extent, because that's where we hook those. So don't worry about what this actually means. We're actually gonna build this exact patch. Are pretty close to it from scratch. So don't worry. I'm gonna show you what all that looks like. Soon the key here is just to understand. We've got these boxes which are called objects, most of them. There are some boxes that are not objects, but we'll get to that. And then we've got these cables connecting objects together, right? Ah, And then we use this plug in Tilda object and plug out Tilda to send audio to and from Max . Now, we also have other kinds of information we can share with Max that will talk a lot about shortly, which is we can share Midi. Ah, We can also get a bunch of information about the track, which is when it gets really fun. I'm going to show you that in the next patch, I think, Ah, patch that I built that just randomly launches clips and changes panning and does all kinds of goofy stuff. So let's dive into that. Actually, I think we we've seen enough of this. Let's start start talking about the real deal here. So here we go. 4. 04 WhatWeCanDo: Okay, What can we do with Max? So I cooked up a quick little ah patch here. This is a really simple patch. It's really silly. But, um, I think it shows you some of the integration that weaken due between ah Max for live and life. So basically what I'm doing this patch is I'm just controlling live with a whole bunch of random elements. Um, So what I'm doing is I'm gonna So let's look at this little thing down here. So this is from, ah, day three from when I from ah, previous class is what I made this for. So basically Ah, I'm gonna press go here, and then all of these clips are going to start randomly launching with some restrictions I did put in there away for, ah, it to make sure that, you know, it's ought to sound interesting sooner or later. So I just threw a bunch of clips on here that I found and then on my hard drive, and then it's gonna randomly start launching him. It's gonna randomly start adjusting the volume. It's gonna randomly start adjusting the panning. It's gonna randomly mute and a Knute different tracks and eventually after I think, like 30 seconds or something like that, it's gonna change the it's gonna start blinking the name of the track as welcoming our robot overlords because of the computer is now randomly generating music. And if it turns out interesting, then it means the computer made something interesting on its own, which means robots are coming to, ah, create art, which is probably dangerous. So anyway, let's try it. So I'm just gonna hit, go and then and then you can see what's happening. So keep your eye on all the parameters that I'm changing here. Remember, that's all written into the patch. I just set a bunch of stuff in motion. Ah, and it might sound good, and it might not. That's how random stuff works. But is this actually usually sounds surprisingly good sometimes. So, uh oh, here we go. Okay. I'm gonna leave this playing and start talking over it for just a second, so I'm not touching the computer at all. By the way, I've just been sitting here watching this, so all of this stuff is randomly happening. Um, I'll explain how this patch works in a later section of this class, I think. But just so you know, thing is it This is everything that's happening. There's a couple things that are kind of hidden. Um, so this will make more sense later. But just so you can see, you know, this isn't an amazing amount of stop. This is actually a fairly simple It's just, uh this turns on and off The transport of a bilton is gonna kind of quickly walk through some of this. This gets the tempo from Mableton. This is where I'm changing the track names. This is where I'm launching clips. So what? I'm adjusting the panning and this is where I'm just in the volume. So, you know, it's actually reasonably simple what's happening here? Um, so I'm pretty sure that we're gonna talk about this patch later in the class, but just in case we don't, because sometimes I change these classes as I'm going depending on what we need to get through, I'm gonna throw it up for you right now. So next video or the next chapter of the class, I'm gonna give you this passion download so you can have fun with it. Uh, the instructions are written right? here. All you got to do is make five audio tracks, but five clips on each track. 123 and four. And then put this patch on track, fi, which is what I have now on. Then you hit Go. So just randomly throw a bunch patches in there and then see what happens. So a quick example of some of the things we could do with Max there are millions and millions of things to waken do with Max. A friend of mine once said to me, Oh, yeah? Well, can you launch a rocket ship with Max? And I said, actually, given a rocket ship, like, if you gave me a rocket chip, um, it actually wouldn't be very hard, you know? Like all I didn't really need to do is write a patch that could basically light a match with a couple of little robotic things. I could do that pretty easy. So, yeah, I could launch a rocket ship with Max if you provide the rocket ship. Anyway, there's an unlimited 1,000,000 amount of things we could do with Max. It's very exciting. It's really cool. Okay, I'm gonna shut up now. Um and ah, I'll throw this patch in the next segment, and then we'll get down to the next thing 5. 06 MaxVsM4L: okay up next. A quick little public service announcement kind of lesson here about what we call this thing that we're working on. Ah, lot of the times, I kind of accidentally call it Max. Just Max by itself. Um, its actual name is Max for live. Um, it's actually had quite a few different names over the years. Max is a program that exists on its own and has existed for 20 years or so, Actually, much longer than live. Max has been around for a long time. And Max, is this programming languages. It's exactly what we see here. Um, right around live nine. The launch of live nine, I think, is when we first saw it. Or maybe live eight. Actually. Now I think about it. Ah, we had Max for live, which was a partnership between Able 10 and the company that owns Max, which is a company called Cycling 74. So those two companies partner to create Max for live, which is a version of Max that runs inside live the nun live version Ah, it's just called max, although it's also sometimes called max slash MSP. And it's even also sometimes called Max slash MSP slash Geter It's weird. Um, I'll explain that in the next video. But, um, just so you know, Max is referring Teoh, um, the max program that exists. It's around. It's its own thing. Max, for live is ah, the version of backs that runs in able to in alive, right? So I'm going to say, Max all the time when im should be saying Max for live. So just so you know, Max for live. We're talking about the version that runs in Mex. So let me explain a little bit about those three names and a little bit about the really fascinating history behind this program. Max, that's been around for such a long time. I promise. I'm not going to turn this into, like, a giant history course, um, about like the history of computer programming, which probably is like the most boring history. Of course, you've ever taken ever. But in the next video, I'm gonna tell you the history of Max because it's actually very interesting. Trust me. Here we go. 6. 07 HistoryOfMax: All right, Here we go. A brief history of Max. So first of all, Max is spelled M eight x. It's not M a C s. As in Macintosh computers. M A X is its own thing in It has nothing to do with Macintosh computers except that it runs on Macintosh computers, but it also runs on Windows. Computer. Um, Max was originally developed at a place in Paris called Eircom Eircom. It's kind of like a government funded research place for Ah Elektronik Music Digital Sound . It's crazy. It still exists. Your account is a huge place, Um, and it's a really powerful place. And ah, lot of the software that you use in your computer to make sound came from here. Come. There's a lot of stuff that, uh, Eircom made and then either sold or licensed to, ah, companies to use in their software. So a lot of very fundamental, important digital audio elements come to us from here. Cobb. It's very important. So, anyway, um, So there was this guy, Um, there was a composer who named Philippe Monory. This is how the story goes. Um, there's a composer named Philippe Monory, a French composer who came into Eircom and said, Um, I would like a program that has the ability to do as the certain thing this was. I don't know exactly what year this was. It was probably around the very, very early eighties, like 80 like 1980 I doubt earlier than that. But maybe so. Um well, no, no is probably early eighties, maybe mid eighties. So Philip Monory says, I like a program. It's able to basically let me play music. Let a performer play music on stage. Ah, to and Electronic Lee generated soundtrack, basically like a karaoke style thing. Um, so it was a programmer who said I could do that? And instead of just building it, they built a kind of module, er thing that would do what Philippe Honore wanted them to do. But also, it would have abilities to all these other things that programmers name was Miller Puckett . No Miller. I was working for your com. Um, he was he's actually American who was working for your common Paris, and he ah, developed this thing, made it modular. I made it so you could move stuff around and reprogramming all the time. So that's largely what we see here. We're looking at a much cleaner and prettier version of it because it's evolved over 20 years or so, but that's basically what he built. Now, Um, eventually you're calm, licensed the program away and gave it to a company called Op Code Op. Code sold, Max. Oh, first of all, ah Miller named it Max M a X as an homage to the person who invented digital audio. Max Mathews. Max Mathews If you don't know about Max Mathews, look up. Max Mathews, Um, is a fascinating guy. I talk a lot about him in that intro to Elektronik music course that I have. Ah, that I have up. Um, Max is very interesting. So Max Mathews had absolutely nothing to do with me. Max program. It was just named as an homage to him, that's all. Um so where was I? Up code. So the program gets licensed to up code op code. Ah, sells it as a standalone thing. And at this point, all Max can really do is it can crunch numbers. It could work a lot of cool stuff with midi, but it can't really play audio necessarily. Remember the computers are pretty slow at this point, um, relative to where they are now. So, um, it's really a number crunching thing, which lets us do a lot of really fascinating things with me. Op code runs it and distributes it for a while until op code goes out of business sometime around 96 or so. I'm thinking 96 97 or so, um, op code goes out of business. And then one of the programmers from op code ah was a guy named David Ciccarelli. He bounces off, starts his own company called Cycling 74 picks up the license and cells Ah, and continues to develop and sell and distribute Max. And that's the company that owns it now. Ah, and sells it now. They're based in San Francisco, I believe, um, called 2nd 74 Now, one of one of the early things that they did was they added this other layer of stuff called MSP. So max slash MSP became the name of the program. For a while, Max by itself did a whole bunch of number crunching and let us do really cool stuff with MIDI. The MSP element was, um, the audio side it. Let us work directly with audio and do cool stuff to the audio signal. So MSP stands for, ah, one of three different things. The inventor of it has said that it stands for um the 1st 1 is it is the initials of the person who first created it, which is Miller s pocket. Um, it could be the airport code of Miller's hometown, which is Minneapolis ST Paul. Ah, And it could be and is almost certainly is Max signal processing eso the max signal processing. Ah, unit. Um, that's just a interesting anecdote, but I've heard those three different things said at different times about what MSP actually stands for. But it's probably Max signal processing. So then we have maximum processing. Later. Um, cycling 74 comes out with another extension to Max called Geter. So now we're called max slash MSP slash jitter. Jeter lettuce directly work with video in a variety of different ways. So now we. So we have Max, which works primarily with audio but numbers and data and stuff like that. MSP, which works primarily with an audio signal and jitter that works directly with video so you can do interactive video stuff. It's awesome, right? So, um, we collectively call that whole thing, Max. That's what it is now in Max for live. So that brings us pretty much up to date in Max for live. You basically have Max MSP jitter. You can do video stuff. You can do audio stuff. And you can obviously do many stuff too. So we have the ability to dio the MSP stuff, the audio stuff and video stuff in ah, Max for live. So the common term Max M. A. X is referring to all of those things now, but actually very interesting story how it came from Paris and was developed for this composer. And now it's being used by all these people all over the world. Um, the cycle, the cycling 74 folks are pretty cool. They're really nice guys they use. We see him at conferences and festivals all the time. They're always hanging out, and they're always really curious about what people are doing with their stuff. So say hi to them. If you see them, we like him. Um, okay, So that is the long and sordid history of Max in a very fast no shell 7. 08 MaxForLiveDevicesV2: - So , first of all, the max for live effect. Now, if you've looked at this, um, in your browser before Ah, you may have encountered something. I just want to point it out so that we're on the same page. So we have three different kinds of max effects, right? We have the Max Audio effect Max instrument in a Max Midi effect. If I open this up, I have a tone of presets. You probably don't have his money as I have, Um, because I've added a bunch. But if I just take the device Max audio effect and put it on a track, this is what it looks like. Okay, so, um, if you've loaded this up and you said, you know what, it doesn't do anything like nothing happens. It just plays the audio right through. That's exactly correct. So this doesn't do anything by itself. This plug in object is just getting the ah audio from the track from here, and this plug out is sending it out. So what this is saying is it wants you to open this up and put something interesting in between those two, But right now it's just routing the audio from the input to the output in back out. Right. So this is just kind of like passing it through doing absolutely nothing. So, um, that's why you won't hear anything when you actually load this up because you need to hit this button right here and go in and edit it. So that's the next audio effect. Let's look at the Max Midi effect. Same deal. Here. Midian is taking all media information that's going into that track. Midi out is sending it back out. So we're not doing anything to it because we're connected from the end to the out of his passing all committee information right through. Nothing happens. Let's look at the instrument really quick. Here's our default Max instrument. Now here. This one is a little bit different because ah, we need something to happen. You can't just pass this through because what an instrument does is it takes Midian and outputs sound or audio. So we need to do something here. So this one, if you load it up, is not gonna actually do anything because these are not connected. But more importantly, these can't be connected because this plug out object needs an audio signal and this midi in object Onley outputs a midi signal. You can't plug a MIDI signal into an audio Ah, input because nothing will happen. So this is the one that won't actually do anything but the others. They're just passed through, right? They just send the information right through, and they're waiting for you to build something. So that's what's in these default devices. Max Audio Effect Next Midi Effect and Max Instrument. 8. 09 LoadingMaxDevicesV2: max for live devices work pretty much like any other kind of clip in a way. So we have a list of them here, right? And we can throw any of these. I can just double click to put it on a track. Um, or we could drag it and drop it onto a track. We could also drag and drop from the finder, which is a little arming the computer finder from, like, the desktop or something, which is a little more common because, um, when you start downloading them, you might want to do this. So, ah, when I do that, I put so in this case, I have a MIDI track and I put an audio max for live device on here. So in this case, it works just like, um, an audio of facts Where if I put an audio effect on a max for live MIDI track, it's gonna say you needed instrument for this to work, so we can do that with just about anything. So let's put go back to an audio track here and let's say, Ah, this comber will comb filter here, So I put this on the track and it's gonna work just like anything else. So now I've got his cool, calm filter on it. Right? So and that's all you need to do. In order to use Max for live devices, we can adjust our settings. We we interact with it on this level exactly the same as any other device. If we want to open it up and change it and modify it, that's when we go to this button here. Right? If I click that, then now we're in Max. Like, look at this. Check this out. So I'm back in live Now, up here. This this always shows the name of the program I'm currently in, right? Like I'm in live as soon as I click this button. Boom. I'm in Max now, right? So that happens to me because I have a full version of Max install. Know this has been something that's been kind of confusing from the gecko. Um, with Max for live. Don't let this trip you up. If this is going to confuse you, just skip over this for a minute. But let me point this out. You can have a full version of Max running and you'll pop over to Max when you do what I just did by hitting that edit button, you don't need to separately install the new version of Max. And I think that's especially true with a new version of Live that if you have Max for live built in, that's all you need. Um, so don't worry about that. If you don't see that, you just jumped over to Max. If it still shows that you're in live, don't worry. That just means that you don't have the full version of Max installed. But you can still do like 99.9% of what you're gonna want to be able to do. There's a very, very, very small advantage toe having the full version of Max outside of live. Um, and really, it has to do with building stuff that isn't gonna run in live. Like, if you're not gonna build stuff that isn't gonna run in live, then don't get the full version of Max using extra life. Um, so So the edit button is what takes us over to it, and the first time you hit this in a day, it's going to take a minute because it has to launch. Ah, the whole live engine under the scenes. But so that's basically how we use our max relied devices. Now let's talk about finding some max for live devices that are particularly cool. 9. 11 StartingFromScratch: Okay, so we know a little bit about Max. Now we know where it comes from. You know what it does? We know how to use it, but we don't know how to build stuff yet. And that is the majority of this class. So from here on out, we're gonna be talking about building stuff, programming our own devices that do unique things that Onley our devices. Conduce, Um, one of the things that I was told once by some of the cycling 74 people. They were saying that and this is before Max for live came out there were saying that one of their biggest problems that they have ah, in trying toe have a business of selling copies of Max is that Ah, lot of people build stuff and then keep it as, like, their super secret weapon. Like they don't share it because they're trick. You know, it's like their effect that Onley they have, and they don't want anyone else to know how they do it. And I will confess I have patches like that. I know tons of people that do. Um, there are patches that, um I keep really close and they're like my little secret weapons, and I throw them out a bunch of stuff because they sound great. Um, for a long time, glitch effects where those things, things that would, like, chop up the sound and do stuff like that. So there's tons of people that are making glitch effects in max, so you can do Ah, it's actually fairly easy to make a pretty powerful little which effect which will look at one later. I think so, Uh, in the next big chunk, we're going to start creating our own device. Now, um, I want to talk about a couple quick things before we do that. Um, in particular eso were Let me let me throw a ah max midi effect on here. So I'm gonna throw an empty max money effect. It's on a mini track. Here's our maximum effect. So I just want to get us all in same page on a couple quick things. So we have our maximally effect here. Now what we need to do is we need to hit this little added button right here and now we're in Max. So just a couple workflow things. First thing I'm going to do as I'm going to stretch this window bigger by clicking on the little arrow here because this is basically your canvas. This is what you have to work with. Now you'll notice this line here, right? Here's what that line is showing of. This line has no function, right. It doesn't really do anything. You can put stuff underneath it and do whatever you want. But what that line does do is it shows this top area is what's gonna fit down here in live . So anything you want to be able to see and manipulate, like a dial or something like that needs to be above this line. Right? But there's a lot of stuff in max patches that we don't actually need to see right like this Midian and midi out. There's nothing we can do to that, you know, like we can't, uh, we don't need to be able to click on that or even see it so we could take that and put it down here. You know, so and then we can put ah, things like our just going through some of the objects here. But here's our gain. So here's a volume, so I can put, I wanted I'd want to put stuff like that above that lines that we can get to it now. You shouldn't have to think about that. While you're programming when you're making stuff, just let things go wherever they land. There's a way to clean it up after, um, so don't worry about being above or below this line. While you're programming stuff. I'll show you how to clean it up after it's something called presentation mode. So this file presentation, what mode away in the back, your head for them for the moment. And we'll get to that shortly. I think. Actually, it's the first thing we're gonna talk about in the next big talk. Um, so But that's what that line means. And then one other thing to keep in mind while you're working on a max patch, we can usually work on stuff and here it in real time. So if I played Mitty in through this track, it would come in through and then into our patch, even when it was open and edit mode. Sometimes you can see that because this is all kind of great out. It's very light gray. That means that this window is open, right? So that means that this might not be working correctly. So what we want to do is we want to get our patch to somewhere we like. We hit save, and then we close this. I'm not going to say this, and then it becomes ungrateful outs. We now we know it's 100% working, So if you're having problems with a patch, just save it and then close it so that we're actually using it in this window down here in live to make sure it's doing what you want to do. It's a common thing that gives us problems. Sometimes is we have that? Ah, when the device is open, might not be working correctly, so ah, set it down there. Save it. Close that window. Ah, and you'll be all set. OK, One last thing we want to talk about before we dive into programming and that is, ah, getting help. There's very powerful little help tool built into Max. We'll talk about that in the next video 10. 10 FindingDevices: Okay, So there's a bunch of different websites that are popping up that are really great places to find Max for live devices that other people have made. And they're sharing so that, um, you can use them to. There's a really great and powerful community of people that have popped up with Max for live that are really into sharing devices and stuff. I love it. I love seeing it. Um, I think everybody does. So one of the best sites that I found for this is this one which is just Max for live dot com. I don't know who maintains this or owns it, Um, but somebody does, and they do a really great job of it. So here we can go in and we can say, Let's look for, um, I don't know, Let's think of a device we might want. Let's look for a, uh, genetic algorithm kind of thing. No bad choice. Let's look for, um Well, let's look for another comb filter. Let's look for some kind of come thing. So here we have a comb chorus. Ah, he knows synth is what this person named it, but really dense patch. There something a little more simple. It's been cool looking baseline with comb filter. Probably built into it, you know, tons of stuff here. So let's take Let's take this baseline one. So I'm gonna go to device details here, and here's the download. U R l Oh, and this person has got it for sale. You can do this. People sell, um, Max for live devices. Particularly good ones. 12 bucks. Eso Let's see if we can just find yourselves a free one. There's nothing wrong with selling them. Try this. Organ one B three organ. I want this. Oh, this is a name. Your price deal. Okay, commits a zero. No. All right, let's try one more aereo. And so this one just went to straight up. Download it. So now I've downloaded this JL Comb Chorus. Let's get rid of my calmer here. Now I can go to my downloads and I can actually just throw it right on there from my downloads folder. But better would be to keep all of your Mac's rely devices in one place. I could drag it into, um, my max folder. So when I could just hit save here, and that will put it in my max Audio Effect folder there, so that it shows up as an imported max relied device. But here it is. So this is what somebody made. Now, here's what's awesome about this. Somebody made this. We downloaded it. They gave it to us for free. We can hear what it sounds like. Do some stuff with it. These are usually presets. I got to take a minute to learn their device, which I'm not gonna do right now. But check it out. I can hit this button. I can open this sucker up, and I can say this is pretty good, but wouldn't it be cooler if it did some other thing? And I can rewire this thing. I do whatever I want with it. So, um, it's really fun to be able to take someone else's thing and build on it, you know, like, keep going farther and farther and farther with it, so it's really fun. So anyway, um, check out Max for live dot com, there's tons of stuff there. There's also other websites that are great. I found Max for live to be the best in terms of, um, the most stuff And they also have, like, some tutorials, um, the ability to upload things and things like that. So and it's a very clean, nice site, so check that out for finding more devices. 11. 12 GettingHelp: Okay, So you may know that in a Bolton live, we have a couple of different little help windows here, particularly this one down here, right? You have this info view that will tell us what anything is when we put our minds over it. It's really handy, You know, I keep it open on here just to show you what stuff is as things come. But Max has a similar thing. We have to be inside the editor to see it. So we hit the editor button going to go here. Now we've got all these boxes. We're going to see tons and tons and tons of these boxes like Midian midi out Gypsies is called an object. Objects are like their own little programs, right? They actually kind of our exactly their own little programs. And each object does different stuff, and there are thousands and thousands of objects. You'll never learn them. All right, um, in fact, one of the ways that one of the things I really want you to understand about Max is that in this class, no matter how good this class is, no matter how good any class is, you will never learn 100% of Max simply because there's new stuff all the time. It's a language, right? You can't memorize every word in a language. You have to learn how to adopts the language. Essentially, you have to learn how to learn the language. And that's what we're going to be doing in this class. I'm gonna show you a lot of objects. I'm gonna show you how to figure out what other objects are. But, um, I need you to be able to figure things out as you go and figure out how to look up objects and find the object that you need versus memorizing every object that exists. That's not a very productive way to do it, even if you have a ridiculous memory. So here is one way and probably the most powerful way on any object we can control. Click on it and go open objects. Name help will be right there. Okay, Now we've opened a help file for that object. Okay, this will tell us what the object does. It'll give us a walk through some notes about how to use the object, right? And most importantly, and most awesomely, is that this help file is a fully functioning Max patch, right? I can use this patch. I can type in stuff I can. I can even edit it, right? Like I can change this max patch. Um, a lot of the times. What we do is if if we're trying to set up, like, if I was trying to set up this kind of a thing, you know this I might just copy this right out of the help file, get out of the help file and paste it into my patch. And then I've got that thing, and I know it works, so you'll understand more about what that means in a minute. But these are fully functioning. Max patches right here. So we contest. We can look, we can see how it's supposed to work from this. Right? So that's in the max help menu. Also over here. Um, this shows us some other stuff about the object that will make sense. These two things, the arguments and messages will make a lot of sense shortly. But this is my favorite thing. See, also, this is for when you say so. You typed in Midian. You made a median object and you said, Ah, it doesn't quite do it. I needed to do I wish. This is showing me all midi data. I wish I was seeing only notes. Let's just say, for example, right, you have the wrong object for that. But you could go to this help file and you could say See also and maybe you'll find an object that's just for notes and look right there. Boom. Receive midi note messages. That's just for notes. So, um, I love the sea. Also function because when you have an object, you don't quite know what objects you need. You can get close to the object that you need by using an object that you already know. And then over here, you can say Show me more objects related to this, and eventually you can get to the object that you need. So once again, control, click open object Name help. Cool. Um so always go to those help files. I go to help files all the time, and I'm not embarrassed about it. I know Max pretty darn well, but I go to help files all the time just to see how to set something up. How the object works. Maybe find the object a different objects than the one I'm using. Um, there's nothing wrong with going to those help files and just copying stuff right out of him. So check that out. Be sure you know how to get to those help files, cause I'm gonna be doing it all the time, and you should too. So with that, let's jump in and start programming something. What we're going to do in the next chunk is we're gonna go through the basic syntax of ah, Max for live, that is objects have been talking about objects already. Um, but I'm gonna explain what objects are. Very shortly. We're gonna look at the different modes, how to patch things together. Objects, arguments, messages, buttons, all of the basic material. And then after that, we're gonna have our first programming assignment where we're gonna walk through step by step, how to make something. Ah, it's gonna be a midi delay, which is a great little experiment. Um, to ah, start off with, I will show you a lot of different things. Okay, so let's go into the next section and do that 12. 13 EditingAndPresentationMode: OK, First thing's first. So what we're gonna do in this section is we're going to go through some of the basics, like the very basics in terms of, like, terminology. Ah, the editing workflow, stuff like that. And then in the next section will make our first project. So you probably won't end up with a project in this chunk, but very important stuff, couple of terminology. Things that we need to get under our belt. So that going forward Ah, we're all on the same page with our lingo and stuff. So let's get started. So I'm gonna throw a Max Midi effect on here and for what I'm gonna do, it doesn't really matter if I'm using a MIDI effect instrument or audio effect because I'm not gonna output anything. I'm just gonna poke around, right. That's really the only place that that matters is when we're out putting stuff. So I click on my edit button down here. We pop open this window, and I'm just by force of habit, going to stretch this window bigger. Um, I don't even really need to do that here, but that's OK. So here's what we have right now. Ah, What I want to cover in this video is the different editing modes. The modes are the way that you can view and interact with this window. There are two modes, and both of those modes have two states. I know that's confusing, so let's focus on editing mode first. So if you go up to view here, you'll see two different options here. Edit and presentation. Okay, I'm an edit now, and it now means I can change stuff. If I click on this object and move it around, it's gonna move. Right. Um, I am interacting with it. I'm editing it now in edit mode, which is what we're in now. We're in edit mode. I can be in two different states. I could be locked or unlocked, okay. And that Ah, the easiest way to get to that is this little padlock icon down here. So right now I'm unlocked, which means I'm in editing mode and I can edit when I'm in locked mode. So if I click that now, if I click on an object and moving around, I can't right now. I'm actually using the patch. Right. So this is our quick way that we go between, Ah, testing and using the patch forever for a long, long time, I should say, Ah, these. This was the only state we had of Max. The other one that about show you is new. Um, so we have this editing mode and weaken be locked or unlocked when were unlocked. Means were working on it. We're changing it when we're locked. We're testing it. That's all it means, right? So, uh, and some stuff will work, especially Midi based stuff will work when you're unlocked. But it's better just to get in the habit of locking it, testing it, being like cool, It worked or it didn't work and then unlocking it. And then you keep working, so we're gonna be toddling between locked and unlocked all over the time. That's the main thing we're gonna do almost everything we're gonna do in this class. We're going to be in this edit mode. Um, and we're gonna be jumping between locked and unlocked. I want to show you a really quick key command to get between locked and unlocked. We can click down here. There's also probably a key command up here somewhere. It's an actual key command. But it doesn't matter because I have a faster one. The fastest one is the hold down command. And then click anywhere, anywhere in the box, Not on an object. Right. So if I click on any blank space in the max window here, I toggle between locked and unlocked. So we're locked now. We're working. Great. Let's unlock it. Just go to a random spot, Hold down command click. Now I'm unlocked, and I could work on it. Right. So that's the main stuff that we're gonna be working with. We're gonna be in editing mode, and we're gonna jump be jumping between locked and unlocked. If you ever find yourself in this situation, we were like, Oh, I want to change this and you click on something and it doesn't happen. Make sure your unlocked right, and that's what you want to do. Even this text I can move around. Right? Um okay. Now the other mode is called presentation mode. What presentation mode will look at presentation mode in a little more detail later, Like near the end, when we're actually making devices that were going to use presentation mode has something like this let me open. Um, let me open something a little fancier. Um, Okay, well, that's really fancy one. This is a glitch. Machines patch. These are fantastic. Check out which machines to Great. So let's open it up. Okay, so here's what it looks like. Right. Um, I am in what's called presentation mode now. Now what presentation mode is is it's a way to make everything look nice and sexy, right? So if I go here, I'm in presentation mode. Let's get out of presentation mode and go into patching mode or, ah, editing mode. Right now, I'm in adding mode, and now I see the actual Max patch right. There's a lot happening here. Eso Now I am in the edit mode. I'm locked. I can unlock it and start messing with it. If I wanted to write, um, the watch, what happens when I pressed the presentation mode button right here? Everything that I don't want hides now the reason we want to do this is because remember that line we saw earlier where we had this line and everything above it means what's going to show up in this window in this area down here and able to him. Right? Um, when we're using presentation mode, we don't have to worry about that too much because it's we can hide everything else and get this stuff we actually want to see above that line. So anything like these toggles, you know, buttons, things we're gonna want to be able to click on these cool things. Those were gonna want to get into the presentation mode. So we hide all of the ugly bits, right? Because if we're going to be sharing this, we don't want people to be have to, like, poke through all of my, ah, you know, objects in tangled cords and stuff. So the presentation mode is purely a way to look sexy. Now the presentation mode itself can be locked in unlocked. Let's go to presentation so this could be locked and unlocked. And that just means that can move stuff around right? And I can rearrange the presentation mode so I'll walk you through how to do that later. But for now, just remember that there's presentation mode and there's edit mode and both of them can be locked or unlocked. Now, 99% of this class we're gonna be in edit mode. Um, we're gonna be jumping between locked and unlocked, so kind of file away presentation mode for a little while, but know that it exists so that if you open another patch and you want to poke around with it and you want to see the guts of it, see what's inside of it, and you're like toggling between locked and unlocked and you're not really seeing anything that looks like Max Fund the presentation mode. Button down here, switched patching mode or edit mode. Same thing, and then you'll see the real guts of it. So know that it exists for when you're dissecting other stuff. Ah, it'll be handy. Cool. So I'm gonna close that. I'm gonna get rid of this one and up next. Let's talk about the basic functions of the editor. Ah, and patching stuff together 13. 14 TheMaxEditorAndPatching: Okay, let's talk about the editor and patching. So I'm gonna throw in another MIDI effect here, my default, and open it up. I'm gonna make that window bigger, because that's just what I do. Okay, So let me just drag these two things out here so we can just see them on their own. Um, so I have to objects here, and they're hooked together with a cable, right? A patch cord, we call it. So here's I'm gonna dio um, let's get rid of that patch cord, shall we? So I'm gonna click on it, and you got a click right on it, and it gets kind of a blue glow to it when you clicked on it. Now I'm gonna press a delete key. It's gonna get rid of that patch cord Now Midi is not flowing through my patch, right? Midian stops, right. Nothing's happening. I want to connect patch cords. What you do is you can see that this object has an inlet, a little black line on the top and an outlet Ah, little black line at the bottom. Now each object has its own set of inlets and outlets. Right? So some objects will have 456 inlets. Some objects will have 12 outlets. You know, it all depends on the object that you're using. Like, let's do this. Watch this. Now I have two inlets and two outlets, right? Just by typing in a different object there. And this is how I create objects. By the way, um, I just get one of these object boxes. I'll show you in a second and ah, I type something in. So let's do like, um okay, now I have two inlets and 10 outlets, right? So it all depends on the object. How maney inlets and outlets we have. Let's go back to Oops. Let's go back, Teoh Midian. Now if I want to connect So some objects, by the way, will have no inlets, and some will have no outlets like look at this one. No outlet, because that's the end of the road in this case, right? This sends our midi back out to able to in. So there's nothing we can do with it from there. So there's no outlet. Let's just find, um so let's connect them. So to connect them, we're just gonna hover. Are mouse over the outlet until we get this little red circle. And then it tells us in that little black box that just popped up What's coming out of here the raw, many messages is what's coming out of Midian. Now I'm gonna click and hold down. I'm going to drag now. I've got a patch cable right now. I can put it right there. I just put the mouse over it till I get that little red circle. And it says what that inlet accepts, which is raw, many messages, which is conveniently what I'm out putting here, right? So that is a great place for that to go. And then I let go, and they're connected. Right? Okay. So let me show you a case in which Ah, we can't connect to things at same time, show you how to create new stuff. So I'm going to double click anywhere in the empty area here. And that gives me this new object explorer. Now, this might look a little bit different depending on what version of Max around, but it basically looks the same works the same, I should say so. We have a whole bunch of objects, you know, these are different things. And we have different categories of objects up here. Right? So the main one that we're gonna be the main ones that we're gonna be working on in the immediate future are this one just called object. So when called message, um, will probably look at buttons. I think that's it may be a number box. Ah, in the most nearest future, These other objects down here are what are called you. I objects. That's what I have selected here. You. Why is user interface right? So, like things, you can click on things you can manipulate with the mouse or whatever. Um, most objects are not that, like this Midian is not a u I object, right, cause we can't really click on an interact with it in the same way that we could like a dial, you know, or a gain slider, those air you I objects. So most of the time, when I'm making an object, I'm going to make this empty object button, so I double click on that. And now it needs me to type in the name of an object. So I'm gonna type in, um, type in one. Doesn't matter. what this is. Don't worry about it. We'll cover this one later. So now I have an object that has 123456 inlets and one outlet. Right. Um, I can put my mouse over each one and see what it wants at for data going into it. Right. Let's look at this. First inlet. This one, this wants a signal as an input. So signal means an audio signal. So what's gonna happen if I take? So I put this Midian to the signal, and it's gonna let me do it. But nothing is really gonna happen when I launch this thing, because this needs a signal. As we can see here, this wants a signal, an audio signal, and I'm sending it a bunch of maybe data raw, many messages, so it's gonna let me connect it. But it's not gonna work, right? That's going to cause problems. In fact, it's gonna cause errors, which we'll talk about shortly. So I'm gonna delete that. Um, so that's how we create stuff, right? We double click somewhere. We get this object explorer, and then we find the object we're looking for. So, um, if I want to create a new object. I just type in the empty object and let's say let's make another Midian. I could have another Midian and that works right now. I've got all my midi from able to in going in. It's gonna come in both these two places. What's gonna happen if I do that? And most objects can accept multiple inputs to a single inlet. Ah, and you can take the output multiple times as well, right? So I can take as many patch cords out of this thing is I want, um, and by the way, that thing I just did. If you have a passport, you don't want it. Just let go and it goes away. Um, what's gonna happen now with this? All my meetings coming in twice and it's going to the MIDI output. I'm gonna hear double everything, right? It's gonna be really fast, so I might not perceive it all the time, but I'm probably going to hear it and my note on and off. So I'm gonna get confused, and it's probably going to cause some problems, But ah, basically what's gonna happen is I'm gonna double all my mini information every note I play is gonna get played twice. When I do this right, that's not a very good idea. So I could just click on this object once. So that's highlighted and press delete and that object is gone. And everything it was connected to is disconnected because I deleted the object and there's no more connection. OK, so that's our basic ah, editing workflow. Ah, One other thing I want to point out while we're here. These text things, these were called comments. Ah, these air just text there. Just text box is actually and you can move them around and do whatever you want. Ah, lot of the time. What I do is I just delete these. Even this one device vertical limit. They're just text. You can make them. If I go to my object Explorer and go to this comment box here and double click on it and then I can type in whatever I want. And then I've got a little floating box of text. It's actually really handy for, like annotating what you're doing. So if you're building something that's complicated, you can say you know Midian from live there. You just put that somewhere. I can copy that. Paste it again. Put it down here. Maybe out to live, right, So you can just leave yourself little notes that will help you, um, keep track of what you're doing. It's really valuable, actually, if you're building something complicated. So those comments, um ah. Lot of our tutorial patches are a little out of our help. Patches. Have those in them. Um, fine. And delete them. They're completely nonfunctional. They don't actually do anything with the data through this little notes to help you understand what's happening, That's all. Okay, let's move on and talk about objects and arguments. 14. 15 ObjectsAndArguments: Okay, so we've talked about objects quite a bit. Delete this. Delete those two comments, and we've got to objects here, and they're connected. Right? I'm gonna get rid of both those. I'm strong a big box around everything to select it in a press delete. So I've got nothing. Nothing happens here. I've totally empty patch. Um, objects and arguments. Very crucial concept to understand. Um, we know what objects are. Right. So I'm gonna make an object and make a delay. Object. Okay. I've got an object called delay now Weaken. Guess what delay does, right? It probably delays stuff, right? Um, but what does it? DeLay is actually quite interesting. So I'm going to step through the process of figuring this out. Right? And this is what I want you to be able to do above all things is figure out what this thing is, what? Figure out what objects do, right. So what does this delay object to you? I'm going to control. Click on it. Open. Delay. Help. Let's have a look. Okay. Delay, delay a bang. Now, a bang is a certain kind of message that we're going to talk about next. Ah, or very soon. So this holds a bank for a specific amount of time before sending it to the next object object uses the max time format syntax. So the delay time, which is normally specified milliseconds, can also be set to other fixed or tempo relative values. Okay, let me parse that out for you. Um, it delays a bank. So this symbol here is called a bank. We're gonna talk about bangs more in a minute. Now, what I want to focus on here is this number that comes after the object. So let me go back to my patch here. So we have DeLay. Now I'm gonna put a bang on it. It's also called a button to trust me on that. This is one of the weirdest things about Max for live this bang button issue. Um, just trust me. So I'm gonna make this big, and then I'm gonna put another one underneath it, So we're gonna go out and it kept. So now I have a button here. Now I'm gonna lock my patch. I'm gonna click on this button and the other one lights up to write. It goes through the delay and out right, and they're more or less at the same time. So this delay is not really doing anything right, Because delay needs what we call an argument. An argument is something that goes after the name, and it gives it some controls. Right? So remember I said that each object is its own little program, right? Ah, you can think of the argument as the settings for that program. Right? So the delay knows how to delay stuff. That's all it knows how to do in this particular delay on Lee knows how to delay bangs does not know how to delay an audio signal, does not know how to delay a MIDI signal can just delay banks, which is a shockingly useful thing, which you'll learn later so it can delay this type of message. Um, but we need to tell it by how long, right? It doesn't do anything right now. It's default zero. So it's delaying it by nothing, which is not a very useful delay. It all. So what we do is we given argument, so I'm gonna double click on it so I can get that text. I'm gonna hit space after the name and Now I get this little prompt saying it accepts arguments of time. Right, So I'm going to say 1000 and I'm gonna hit return. So delay is the object name. That's the program that's running. And then I leave a space, and then I give it an argument. Now, in this case, the delay. The argument for delay. It accepts one argument. Ah, and it is. It is the amount of time it delays. Now here's the really tricky thing. Each object has different arguments, Um, that affect it differently. And some objects have multiple arguments you can put there are some objects will see that have you know, 567 even more different arguments. So you'll see the name of the object. Then you'll see a space and then a number, and then a space and then maybe a word and then a space on another number. These air all arguments an object can on Lee have a name with no spaces in it. That is the object. So when you see an object that's got all kinds of stuff and it's a really long thing, and it's got all this text out here, you know that the first word there. That's the object. If there's a space, that's the end of the object. And after that, it's all arguments. So that's what you're actually looking at, Mark. So let's see what this does. Why did I put 1000? 1000 is the default time format for Max is milliseconds. So unless you've told it something different, Um, it's it wants to deal with time in terms of milliseconds. So what 1000 milliseconds is one second? So now I've said DeLay by one second. Right? I'm gonna lock it. That was command click anywhere. Now we're locked, so it should work. So I'm gonna click on this bang, and then a second later, we should see this one light up. It worked, right? Hey, we both a little patch. It doesn't really do anything useful, but this is useful. Trust me. You'll be glad you know how to do this. Okay, So if I want to change that, I can say 500. Click out of it now we're working. Lock it. Click there Half a second later, it goes there. Okay. So just remember that time is in milliseconds until until we start talking to able to, And then we can ask for time in terms of divisions of the beat. Once we're talking to able to weaken, say, give me 1/16 note and things like that. But until we're doing that, time is just in terms of milliseconds. Most of the time I said time twice. That was kind of a pawn. Kind of not really. Okay. So the key here, though, is arguments. Let's look at another one. Um, let's do an object, um, soon object called boozy. This is a kind of a goofy little object. What this does since we're talking about bangs, which is just lighting up this little button, that's all it does. Grab one of these. This little trick I'm doing, by the way, is, um, I'm option clicking and dragging when you want to. Just make another instance of an object you can hold down option, click and drag. It's really useful when you're programming Max stuff, So I just made another bang by holding down option click and drag, and then you get another instance of it. What an Uzi does is it shoots out a whole bunch of bangs as fast as possible, right So if I connect this, that says, Watch out. So I connect that to the bank. This is an instance of Max programmers having a very slight sense of humor. So this is saying this is going to start shooting off bangs as fast as it can, so watch out. So this Uzi now it's gonna shoot off Wattana bangs. But a ton of bangs is not really like a thing, right? Like I need to give it a number. It needs an argument. How many bangs, Right? So arguments others, too. The initial and the base. What does that mean? Let's click on that sets an initial number of bang messages to be sent out in response to a bang in the left inland. No argument is present. Suzy is initially set to send out one bang, so that means it's default is one. If you don't give it an argument, it's just gonna shoot out one. And the initial is how maney bangs to send out base. An optional second argument sets the base value for the right outlet count based value default toe one when no second argument is given. So that's saying is we can put a second argument, Um, that will set a base value different than one if we want. So that would be like if we said I think that's saying if we said we wanted to send out 10 bangs, but at a base value of two, it's gonna actually send out five banks is gonna go 2468 10 and then send out. So that's the base value based value of one is what we usually want. So we could give it to two arguments here. Um, how does it know the difference? Right? If I say I want you to send out 500 bangs at a base of to I would do that right, because it knows first argument is how many. If I did it opposite, it still knows. First argument is how many now it's going to send out to Bangs at a base of 500 which is probably going to send out zero Banks actually is going to get confused. So the order of the arguments is important. So let's have it send out 500 banks, and now I need a bang to trigger this thing. So as soon as I hit this bang. This one is going to send out 500 banks. Now, we're probably not going to see it cause it's gonna shoot out super fast. So what we're gonna see here is this is gonna light up for not even a second. Um, let's do it. So 500 banks just went into that bank, which can be valuable. I will show you the value of bank shortly. Um, but arguments. Right. You can have multiple arguments, have single arguments. Um, maybe we'll see that a little better if I say 5000 banks. Nope. Still just blazes right through it. Computers are very fast. Um, okay, so I think I've covered it. So just watch out for objects arguments. Very important concept that you will get comfortable with very shortly. Now, let's talk about messages, and then we'll talk about bangs and little more detail, But messages first. I think 15. 16 Messages: Okay, The next thing we need to wrap our head around is a message. A message is a little bit different than an object, but it can easily be confused. So I'm gonna make one here in a double click to get into my object explorer here. I'm gonna click on message right now. Unlike objects, I'm just gonna put a number here. Um, 5000 get only click out of it now, unlike objects, messages are not programs, right? Like the object this in right here. What we have is we have a program called delay that's got a value of 500. And in this case, DeLay interprets as milliseconds because that's what delay needs to know what a message is . Just text. It's just text that we can send away, right? Weaken, send away this text. So what I can do here is basically the cool thing about a message is that let's say we want to change this value. The argument here on the fly, right? Like we're doing something where in a live performance, we're using our max patch, and we want to change the value of our delay. Right. I can't double click in here, go in here and say, Ah, change to that. You know, that's a little cumbersome when we take it back to 500. But what I can do is I can hook a message to it. As long as this object will accept a message, I can hook a message to it and send it down. Right. So I'm gonna pull out my message, and in this case, I'm gonna go into the right inlet of delay. Now, remember, this is totally dependent on the object we're using. This particular object will accept a message, and it's right inlet. And we can see here that what that right inlet wants is set the delay time in milliseconds . So I let go. Now, I've got a message with 5000 in it. Now, what that message will do is what we've got now is if I hit this 500 milliseconds later, the delay goes down. Nothing's changed, right? We're still just going through there at 500 milliseconds half a second. But once I click this, this needs to be clicked. In this case, I'm gonna click that once. Now this message got sent down into here and now this argument has been rewritten to be 5000. Now, why does it still show 500? That's just a user interface thing. We're never going to see the object argument update, right? We just have to remember that we've sent it last 5000. That's what the last thing it got is what it's going to use. Right? So now if I click this, we're gonna be waiting a long five seconds till we see that bang. There it is. Right, Because 5000 is five seconds, and that's the last thing it got. Now, let's clarify messages a little bit more. What happens if I do this? Oh, yes. Say it out loud to yourself. The joy of online classes. I don't know what you're saying, but, um, if you answered, we're still going to be at 5000. You are correct. But there it is. Okay. Why are we still at 5000? This is not connected anymore. Because remember, this just sends its message down the line. The line is not connected anymore. But it doesn't matter because this has already received it. The delay has got it. We hit it once. So this is the argument has been rewritten to be this argument. Now we're still sitting at 5000. How can I restore it back to 500 fairly easily Could make another message and send it 500 again. Once you rewrite that argument with the message, you've got to send it more messages to get back to the original. Now the Onley time that if I'm changing these with message is the only time we're really going to get this the argument as it's written into the object as only first load the patch and before we send it anything in this case, you can think of this as a default value, right? This is our default. We can change it. And we could do this if we want. Now we can toggle between those two, right? We're at 5000 now. That was dunks. Now I gotta wait for it. There it is now at 500. Cool. So that's what messages do. They have a lot of other applications. This is just one application of a message. But, um, I think this is the best way to start to understand them. Messages are different than objects because messages don't do anything by themselves. They are really just taxed their numbers, their tax. We can put words in there. We can say, Hi, Mom. If we want. Sending this, though to a delay object is not gonna have good results because the delay object is going to say, I don't know what to do with that. I I I need a number. Give me a number. Don't tell me about your mom. So if I do that So I just sent Hi mom to my DeLay object. And it's what it's actually going to do is it's gonna ignore it. Um, it's going to use the last thing I gave it, which is was 5000 obviously, any time now. Oh, it's not. Ah, it's not gonna pass anything through because now it's just mad at me. So what's happening now is that it got Hi, mom, and it says, I don't know what to do with that. Give me a number and it's waiting for a number we can tell, and this is something I haven't showed you yet, but we can tell that it's confusing. It's mad if we look at our max window. So go appeared a window and open up your Mac's window. This is where we see errors. This is handy to keep open. Okay, so all these yellow things, these are These are warnings and it's saying hi is a bad number and Mom is bad number. There's a space in there, so it's interpreting it as two different messages. And it's saying I don't know what to do with that is not a number or this is a number I don't understand. So if I go back to 500 it's gonna work again at 500 right? If I goto Hi, Mom. I'm going to get more errors. So these are showing us errors. If you have a complicated patch, it's great to look at this max window to see what's causing you problems. So, again, that was window Max window. You could also get that over here. Now, open sidebar Max window so you can have it in the same window right here in this little sidebar. Handy. Right. Okay, um, I think we get messages now, right? Ah, next. Let's talk about bangs and buttons. 16. 17 BangsAndButtons: Okay, so the next thing I want to look at, um and we're almost done with this this ah, terminology and lingo stuff, and we're gonna build a patch really soon. So it's hang with me for another two little videos, and then we'll be making a patch. So let's talk about these bangs and buttons. These things. What are these? They're very strange. And first of all, let's talk about what they're called. Are they called bangs or are they call buttons? If we go into our object explore and we click on one right here, it's called a button, right? Um, I call them Bangs, because forever, That's what they were called on Lee recently. Did we change the name of them? Two buttons. So when I say a bang, which I'm going to try to save button throughout this whole course. But sometimes I'm gonna say bang. And I'm sorry about that, but it means the same thing. Okay, um, I don't know why they changed the name of it. It's confusing, but because sometimes we still see the word bang pop up. It's not consistently changed all the way through. Um, I have kind of a theory on why they changed it, but, um, I've recently been told by a friend of mine it cycling that, ah, theory is is not true, although it's kind of funny, but I'm not gonna bother you with it right now. Um, so bangs and buttons are the same exact thing. Just two words. There's the old word which is banging the new word, which is Button. Um, I'll try to say button, but I'm probably gonna say bang, like all the time because bangs more fun to say, to be honest, um, what do these do? These are so first of all, what I'm doing here is I can grab the bottom right corner and make these bigger, smaller. These are technically these are ah, you. I object because we can lock it and we can click on them and make stuff happen. We often use these as like launch messages to say, like, go. You can think of these as go buttons. They do stuff, right? Um so a lot of the time, you'll set up a process of things toe happen, and it'll need a bang to start happening. Right? So we just hit it with a with a bang. It's kind of like lighting the fuse. Or sometimes we can use Amazon off messages. Um, they're just handy ways to kick stuff and emotion is a good way to think about these things . So this object delays bangs. So if I say I'm gonna start this, but then do something else later. Ah, that's that's, ah good reason why you'd wanna, ah, delay them. I'm gonna change the argument of this because I think it's still got my hi mom in there. Okay, now I'm now I'm set up. Now, here's something I could do with bangs so I can go out of this bang into another bang. Let's put these two side by side. Right now. This one is going through a delay. This one is not. It's trying to make him about same size where we go. And now we can kind of see what that DeLay is doing. A little clear because this one is gonna bang this one at basically the same exact time. It's just going to send it right through, right? I could do this. Let's set another delay coming out of that and let's go like this. So now we're going to see. What are we gonna see? Tell me what we're going to see here. We're gonna see this one light up and then this one and then this one all half second apart , right? Cool. Huh? Um, let's look at the help file for a bang. Control click open bang help. And it says button here. But look, blink and send a bang. Um, so a button sends a bang. It's weird. Um, okay. Button provides visual feedback of an action and is used to trigger other messages and events so we can click on it and it'll send weaken. Send it a message called Bang, Weaken. Send a bang pretty much anything. And it will output bangs. That's another fun thing about it. Like I could do this. Watch this. Let's create an object that you already know Midian, right? You know, median, we've seen that. And that just funnels all my many information from this track into this object, and then it spits it all out. What happens if I do this now? Every time I play anything on my midi keyboard, which I'm just flailing my hands on my mini keyboard, it's going Teoh out. Put it to the bank. Right? Um, so that bang is getting hit hundreds and hundreds of times as I'm playing this right now. One thing you'll notice here is kind of a confusing thing, but it's worth pointing out is that this one went crazy. He's only let up once, right? Did you see that? So I'm playing a bunch of stuff and my delays are not getting triggered, right? I'm gonna stop playing right now on those Go off. The reason is thes delays reset. They wait for the last bang in a series of bank. If you send it multiple bangs within its window of time, which is 500 milliseconds in this case, it's going to get reset every time. And it's only going to delay the last one that comes through. Uh, that's happened outside of that window. So if I keep clicking, this just manually was clicking as fast as I can less than 500 milliseconds. Soon as I stopped, it's gonna delay that last one. Only same deal with this one, right? So that's why that first ones just funneling straight through the other two are waiting. That's a function of the delay, Not the bank. Right. But what What's happening up here is all this MIDI information is coming in these air. All numbers, really, That air flowing through here. It's Aton of midi information. Tana numbers are going into this bang and the bang is saying, Ah, you're giving me a whole bunch numbers. I'm gonna bang. That's all. The bank knows how to do it says, um, I know how to bang. It's a very dumb little program, but it does one thing, very importantly, which is the banks. You give it anything and it goes, Ah, bank. It's kind of like the ho door of Max. If you're a game of Thrones fact fan, remember the character Hodor? All he knows how to do is say hold or but it's kind of the answer for everything. Um, it's a lot like that, so you can give it a whole bunch for information, and it's just going to say hold or I'm gonna write a letter to Max to cycling 74 say, Can we rename ah, the bang object again and call it hold or because that would be awesome? Um, okay, enough game of Thrones references. I think we get it right. Ah, bang will accept anything as an input. And it's gonna output bank. That's all it's gonna do, Right? Cool. So now we know Banks. Ah, one more quick thing. And then we're gonna build something, I promise. 17. 18 HowToLearnMax: all right. Super quick. Little, ah, thing I want to point out before we get any deeper. I know I've said this before, but I just really want to hit this home that the goal here is not to have you memorize every object and learn all the arguments for every single object and everything like that. So don't get freaked out if that's what you're thinking. Like Oh, man, this is just way too much to memorize. Don't think like that because you'll freak yourself out. And that's where I see a lot of people that are learning Max and Max for live kind of give up on it, as when they realize that there's just too much to learn. That's not really the case. What you need to do is learn how to learn Max, learn how to adapt since size. So that's why I'm showing you some of these basics now and what we're gonna do more or less from here on out Ah, in the class is we're gonna build stuff, we're gonna build projects, and from there you'll be able to see ah, how to think about Max, how to think like Max and that will lead you to when you're saying I wish I had an object that I could do this crazy thing. You'll be able to figure out how to build that because you understand how to think in a kind of Max specific kind of way. So I want you to learn how to learn. Max. You can't possibly learn everything there is to know about Max. Um, so please keep that in mind as we go. As I'm building these next projects in this class, I'm gonna try to be thinking out loud as much as possible. So you conceive my thought pattern, right? I'm gonna try not to edit out my mistakes. Um, and just so that you can see that. You know, I look up stuff all the time. I look up help files. Um, there's it's totally okay. It's designed for you to do that, So Ah, this is not a memorization game. This is more of a synthesis game. This is about how can you really ingest the way Max works so that you can synthesize that information and create your own stuff? It's just like learning any language, right? So don't you freaked out now Let's have some fun and let's build some stuff. First up, we're gonna build a MIDI delay. It's gonna show us how to do a bunch of different stuff, and we're gonna learn a couple objects along the way. Here we are. 18. 19 HowToApproachAPatch: All right. So for our first project, we are going to build a midi delay, right? Pretty simple. But, um, we're gonna learn a bunch of stuff in the process of doing it, so ah, stick with me now. A couple things. Um, your best approach to learning this is to do it along with me. So, um, whatever your set up is, what I would do is wash a little bit of video posit. Do it, come back to the video, do the next thing, pause it and then do it in. Max, you want to be doing this along with me and try to understand why I'm doing everything that I'm doing. I re watched the videos. If you don't get it, um, post questions. If you don't get it, just really try to understand every object and why it's there. Um, everyone has always said the best way to learn Max is to really to start dissecting max patches. So once you have this patch, um, you can kind of poke through it and even, like, connect things differently and see what happens, right? Like there's very few things you can do and Max that are actually dangerous to your computer. It's a very sheltered little language. That way. Um, I might even say there's nothing you can do. You could crash your computer. Um, but it would be pretty rare. It We're pretty hard to do, actually. So you know, if you connect something that's not intended to be connected, it's gonna give you an error messages, and it's not gonna work, you know, like, there's really nothing to be worried about. So, um eso don't worry, you know, feel free to make mistakes. Okay, so, um Amidi delay Here's what I'm gonna do. Let's get started. I'm gonna make a Max midi effect, right? Because it's a midi delay. It's gonna be Midian and midi out. So that means I need a Max Midi effect. Now, before I leave here before I open that window, I'm also gonna throw an instrument on here. It's gonna throw a default analog on there because I need to make some sound right. So right now I can play my midi keyboard. I'm going into the Max Mitty effect. The MIDI information is coming into the midi an object. It's passing straight through the to the midi out and it's going into my analog, right? And then it's passing out as audio. So I'm not doing anything to the signal there. Let's open her up. Now, here's how I like to approach patches. I'm gonna get rid of these comments because they're just kind of in my way right now. Well, im Indiana my media, I'm gonna stretch these all the way that apart, right? And then I'm gonna disconnect this because I want my Midian at the top. My midi out at the bottom of this is purely the way I like to work. You don't have to do it this way. But that means that I can kind of follow my signal flow going down. Um, and I can go over here if I want, but ah, it's just kind of easier on my brain to think of the signal going from here down to here and doing what I want to do in here. Right. So, um, here's what I'm gonna dio. I'm going to just write out some comments. First. I'm gonna make a comment. I'm just gonna outline what I'm gonna do, Uh, in just plain English, right? This is a really handy approach to building stuff. Where is going to say what we wanted to do in English? And then the next step, we're gonna find the right objects, find the right connections and go through and build it. So, um, I was gonna write Midi DeLay. Let's put that up there. Now, the first thing I need to do is to delay the MIDI data, right. And then the next thing I'm gonna do is let's add a way to control the delay time. Right? Um, and then let's add 1/3 thing, which is gonna be, ah, a way. Groups way to, um, toggle the dry wet. And what I mean by that is the delayed and not delayed amounts. Right. We'll talk more about that in a minute. Um, I think I told me we need to do with this, so those are gonna be our steps. Right? So that's what we have to build. So we're gonna take it step by step here, and, ah, get rid of these things as we figure out how to build them. Right. Okay. So keep in mind here. This is just one of the tricks that I like to do, which is just explain what you need to build in English and just write it out as comments and just put it into the patch. That way you can keep track of what's coming and what you're gonna be doing as you build it . Ah, it could be a handy way to kind of think through what you need and the process, so that being said, let's dive in. 19. 20 DelayingMIDIMessages: Okay, So, um, let's walk through you through my steps here, delaying the midi data. Okay, So how are we going to delay this MIDI data? We need an object that's gonna delay MIDI data, right? Like nothing fancy about that. Now we've seen an object. Let's make an object call DeLay. Right. Let's look at the help file for DeLay and we see delay knows how to delay a bank. That's not gonna really do us much good. Right? Um, because the delay isn't quite right. So let's go over here and let's go to the sea. Also, here's a list of different kinds of delays. Kind of, um, differ the execution of a message. That's not quite what we want. Pipe delay, numbers, lists and symbols. That sounds pretty good, because what is MIDI data, if not a whole bunch of numbers? Right, So that's what we actually want. We want toe be able to delay numbers suddenly double click on that, which is gonna take me directly to the help file for pipe delay numbers, lists and symbols. These numbers list and numbers lists of numbers or symbols. Symbols is a fancy way to say text, usually pipe uses the max time formats in tax bubble blah delay. Interval is, um, either milliseconds or a temple relative. That means ah, like divisions of the beat if we're talking to able to. So this is gonna work quite well for us. So let's use pipe. Let's get rid of that and that. So I'm gonna change this object to pipe. So let's give piping argument of its delay time. Let's say 1001 2nd And now if that works, the way we think it works, we could take all our many information in and send all of it out, and we should be delayed by one second. Right? Let's try it. So I'm gonna lock it. I'm gonna play some notes, and a second later, I heard those notes, um, one time. So I'm playing the notes right now, so it's delayed by a second. So we did it like if all we really wanted to do was make a way to delay Midi notes than we're done right? Three objects Midian pipe midi out. That's all we needed to do. But let's get a little fancier with it. Right. Um, pipe is going to let us delay our many notes. But what if we want a way to control the delay time? Okay, so this is where things are going to get a little fancier. So let's leave our argument of 1000. Ah, so we can say we can get rid of this comment, delay the MIDI data because we've done that now in our right inlet here. Set the late time. Right? So we know how to do this. We know how to be able to set something up to change this on the fly, right? We've already seen that by using a message so we could set a message here to say 2000. Well, you connect that. And now we can change that. We can click on it here and now. When I play a note now, two seconds later, we hear it. What if we want to be a little more flexible about how we're changing it? Let's learn a couple new things here. Let's get rid of that message. Let's go into, Are you? I objects here and let's scroll down. Let's look at sliders. Sliders is a fancy way to say, Ah, different kinds of things. We can click on and move around. That will give us a different kind of value, right? Like a dial or a gain Slider. Ah, que slider is like a keyboard. Um, there's a lot of different things. Let's try a dial. What if we wanted this dialled control, our delay time? This actually works quite well, right? Like why not put a dial on our delay? Makes perfect sense. I'm gonna click on this corner and drag. It's to make us a little bit bigger. Okay, Now, we've got a slight problem here because the output of this dial is a relatively low number . It's probably between zero and its lowest end. So down here it zero. When I push it all the way up, it's probably 128. How can I know that for sure? Let's learn another object number. Okay, this is a number box. It's just going to show us numbers all it does. It takes in numbers and it outputs those numbers if we wanted to. So let's plug in our dial into that number box, right? So now I can lock it. I can move this and I can see what number it's out putting 1 27 at the top. Of course, 1 27 and zero at the bottom. So if I put this directly into my pipe, what have I got? Think about it for a second. What I've got here is a delay. That's between zero milliseconds and 127 milliseconds. That's very, very short. DeLay 127 works great for MIDI values but does not work well in milliseconds. Right 127 milliseconds is very, very, very fast. I need a higher number out of that thing, so let's get rid of that. Let's leave this number box. I mean, let's do a little bit of math to make us a little bit better. Let's make an object now. One thing to remember about objects is that any math operation can be done with an object. So let's say, um, let's multiply this So I'm going to use the Asterix as a multiplication symbol. Space so multiply. And then I'm going to give it so multiplies the program here. I'm going to give it an argument of what I wanted to multiply by which, let's say 10. Okay, so multiply space 10. Don't forget about that space. Don't forget that multiply is the ah program and 10 is the argument. If you just do Asterix and then 10 you're gonna get this which you see No inlets outlets. That means you got an error. And if we open our max window, it's going to say I don't know what that is right there. New objects multiply 10. No such object to nearer, right? It's because you didn't have that space in there. I see people do this all the time, multiply space and then what? We wanted to multiply it by. Right. So let's output are number into their and we could We don't need this. We could just go straight into here and get rid of that. We could, but I like to see the number. The number that's going in. So let's leave that number box there. It doesn't do us any harm, but we don't need it. It's just so we can see it now. I'm gonna option click and drag, make another number box on the output so we can see what we're getting. So now nothing is gonna happen here until I give this a new value. Right? So I gotta wiggle this as soon as I touch it a little bit. Ah, we get our new value. So what we've got here is 12 70. So a little more than a second on the upper end. Is that enough? Let's make a little higher. So let's actually multiply by 15. It's moving again. Now we're closer to two seconds at its high, and that oughta work. Now let's send this number box into our delay amount. Now we've got Let me just walk through this. This MIDI DeLay is being controlled on how long it's delayed by this dial, which only outputs 0 to 1 27 So we're multiplying that by 15 and getting us a value that's between zero and 1905 just almost two seconds so that we have, ah, value that fits a little bit better into milliseconds right now. Whenever I turn this, it's out putting a new number, which is updating the pipe. Every time a new number shows up here. The argument of the pipe is being updated. So if I go down here, I play some notes. They're being delayed by 540 milliseconds about half a second. I go all the way to the top place notes. They're being delayed by 1905 milliseconds, almost two seconds. So as a handy way to get things into a rain just a little bit better. There's a whole bunch of ways to get things into a different range. Um, we could Well, there's a couple other things we could do to modify the range of it of this. But this is a simple way, and I wanted to show you, Ah, some multiplication zone number boxes and things like that. So it's a good way. So now we've got a way to control the delay time, right? We achieved our second goal of this patch, got a pipe that's delaying the MIDI data, and we're controlling the delay time. So let's get rid of that one. Next, we need to find a way to toggle the dry and wet. Now this is going to require, ah to at least new objects to you. So let's break to a new video and then pick it up there 20. 21 AddingDryWet: Okay, So what I mean by dry wet here is right now all I'm hearing is a delayed signal, right? So it would be. And that doesn't work all that well for a delay. Because if you're delaying a signal and you don't hear the original, you're just waiting to hear it. You know, you just got laid, Enciso. Let's add the dry signal back in. So here's I'm gonna deal. I'm gonna select all of this stuff. I'm just gonna nudge it this way. Hair because toe, add the dry signal in. What do we need to dio? I just need to route median down. Too many out. Right? That's my undulating signal. What I'm calling the dry signal is just that. Oops. There we go. Now I have the dry signal back in. Right. So if now when I play a note, I hear twice like that delay a little bit shorter so that we're not waiting all day. Put around 900. Yeah, let's play a little scale. Go right now. What if what if we wanted to build a way to be able t decide whether or not we want to hear that dry signal? Uh, huh? Right. This will be fun. So we're gonna need two things to do this. Um, first, we're gonna need ah. Now you'll notice that since I have this side bar open, my objects came up over here when I double click somewhere. And that's okay. That's just Ah, different feature. So here's my object Explorer. So let's go to a toggle. So a toggle is an on off button. I'm gonna make it nice and big. We're gonna put it right up here. It's trying to make it about same size as our dial. Okay, I'm gonna lock it now. When I click on this, we got this big X. When I click on it again, it turns off on off right when I click on it, that's toggle. Now, this toggle doesn't do anything. This toggle actually sends ones and zeros. Um, it needs to turn something on and off. It actually doesn't do the on and off. It's only something that click, right. So, um, we need to interrupt this in some way, So let's get rid of it now. What would be something some kind of object we would need that's going to let the signal go through that line. This Woops, This one. So I want this signal to go through this this cable when this is turned on, but not when this is turned off. Right? So I got to come up with an object that's gonna do that. So if you don't know, an object that does that best is just to make a guess. What's a, um Well, I'm just gonna tell you. Ah, in this case, it's gate G A t E. Now, when I type gate into this box, my auto completion here says I have two options gate and then gate with a tilde. You do not want the gate with the tilde. In this case, we'll talk more about this later. But, um, the gate with a tilde means anything with a tilde after it means that it is, um, sending an audio signal, right? We're not dealing with audio signals. We're dealing with numbers right now, and many signals. So we want just the one without the tilde. That's important distinction to make. So we have a gate. Let's look at the help for gate okay, past input to an outlet. So if we give it the argument of three. Then it's gonna have three outlets and I can tell it which ones to be open and closed. Right open first outlet and there's numbers flowing through it. Open second outlet and now the numbers air flowing through that right now, if I give gate no arguments, it's only got one. I would right And I've got two inlets. Let's put our mouths over them and see what they take. This 10 closes the gate, non zero opens the gate. Cool. And that, cause that's exactly what this outputs this outputs a one ah, or a zero when the toggle is set. So I'm gonna plug that into there because that's controlling the gate, whether it's on or off, right? The next thing I need is this input the right inlet, which is incoming gated messages. What are we gonna gate? So in that case, we could do this on, because that's what we want to put their but there and then output to the many out. So what is that doing? Let me walk you through that one more time. The right inlet is what is being gated. That's our interrupter, right? So we're putting them this The signal is going in there. The list of many information is going in there, and now it's coming out here. As long as this is anything other than a zero cause it says zero closes the gate. Non zero opens the gate. So if we give it anything other than a zero, it's gonna let that information passed through. If we give it a zero, it's not gonna let it pass through this thing. I'll put zeros and ones. How do we know it outputs zeroes and ones? Let's let's confirm that by throwing a number box on it, right? Whenever you want to know what something's out putting. If it's a number through a number box on it, right there, zeros and ones coming out of that cool. So now I know for sure that's out putting zeros, and once it's get rid of that number box and we're pretty much done. So this is off. I play a note. It's delayed by 900 milliseconds. Neat. Turn this on is playing out way here twice. Uh, turn us off play note and it's just the original. Okay, so we got a little ugly here by moving the surround. Ah, we could put this down here if we wanted to not be so ugly. And maybe this over there. Well, no matter what you do, it's getting a little ugly, but that's okay, s So we did that and we're done, right? We did everything we wanted to dio. We've got a way to change the length of the delay. We've got a way to turn the dry signal on and off. We've got some math happening to adjust the length of the delay. Ah, and we've got an output going. Teoh, our synthesizer. Awesome, right? We just built a fully functioning MIDI delay, and it works. Great. So let me, um, jump to the next video and I'm gonna show you one kind of weird thing about this. Ah, and then we'll move on to another patch 21. 22 WhyNotNotein: okay, I want to show you one other thing. When a lot of people sit down to make a midi delay, they don't start with note in, they start with another object and it doesn't work as well. So I'm just gonna really quickly show you why. Let's start with note in note in works really similar to Midian in that note in gets our information from Mableton. So it's gonna get all are no information. But unlike Midian, it throws out anything that isn't a note, right? So it's only gonna give us notes. It's not going to give us controllers or anything like that. And that might be OK, because if all we want to delay is notes, that's just fine. But watch this. We have three outputs. Let's throw number boxes on all of them. I'm only showing you this because you're gonna encounter this note in box object shortly, and I want you to know what it does because it is really useful. So I'm gonna connect all three of these. So what are we looking at? This 1st 1 is showing us the pitch. 2nd 1 is showing us the velocity on 3rd 1 is showing us the channel. So I'm gonna play a note and I'm playing note number 60. I can see the velocity that I'm playing it at and I can see I'm playing it on many Channel One, Right? Great. Now here's what I can't do. Let's take my pipe object, delay my notes and send it to an output. Right? This has problems. Um, mostly because when you do it this way, the note in needs to be combined with a velocity and sometimes a message. All of these three things need to come together. And if I just delay one, our velocity is no longer attached to it and it causes problems. The note will probably not be made now. In addition to that, we need to reassemble it as a note before we send it out. What this one is doing is this is just literally all midi data, even like a dial. Like if I move a dial on my midi keyboard here, it's going to delay it and out put it in the exact same way. What this does is it separates those out, right? So we've got note in. We've also got message in. We've got, um, control in. We've got different mitty types of things that can go out. Ah, and we can separate them. This is everything. This is a smaller amount of stuff. But when you're working with a smaller amount of stuff, you have to keep the velocities together. Now, the next project we're gonna dio we're going to use note in and we're going to separate the note in the velocity. Ah, and treat them differently for a fun little project. Um, that will show us how we interact like that, right? So ah, let's do that. Let's jump to the next one where we're gonna be working with note in, Ah, we're gonna encounter this problem and find a solution for it right now. Before we do that, I don't delete this and I'm going to save this patch. Um and I'm going to Well, let me just walk you through saving it. So I'm gonna go save as and let's call this. I'm gonna call it the number of the lecture, which is going to be 23 I think 23 any delay going to save it to my Max Midi effects? Okay, Now you'll notice as soon as I saved it. It updated down here to be extremely ugly, right? Because it's only showing me what's above that line. And I didn't do anything with the presentation mode stuff, right? But that's OK for now. Ah, we can still get to the two things we need to get to. Is these two dials or this toggle in the style? So as soon as I close this, you know, we're using it. Let's turn on the dry, right, So we're using it, and it's great. Now I'm going to upload that. Ah, so you can download this patch if you want to walk through mine. Ah, and play around with it. That's just fine. Um, it would be better to build your own, but I want to give you this patch just in case you had any problems with it. Ah, so let's do that. So in the next video, it will be a download link, or the next lesson will be a download link for this patch. And then we're gonna walk through making our own arpeggio. Later. I'll see you there 22. 24 ArpeggiatorWalkThrough: All right, Project number two, Let's build ourselves in Our president, er they might be thinking why, when I build in our pressure, Gator, I've totally got an arpeggio later, right here in a Bolton. Right, But, um, this is a really good experiment. Um, this is really gonna be handy at showing you how some stuff works. Um, And when we build our own are pesci ater We can add some stuff in there that maybe the able to know appreciated on half. Like, for example. Let's say you want the Are Pesci ater too? I don't know. Um, have the number of notes it plays be the number of tracks you have, right? That would be weird. I don't know why you'd want to do that, but it doesn't matter, because you could do that. So that means you should know that's not true at all, actually, but, ah, you could do putting much anything you can imagine. Um, so let's build ourselves in our appreciator. So I'm gonna go to Max for live here, and I'm going to go to Max Media Effect so that on a muddy track and pop that bad boy open making as big get rid of our comments here because they're just getting in my way. And we know these things. Now we know it all that stuff is so So here's my default. I got a nice big window. I got Midi and midi out. No, let's just walk through in the same way we did earlier what we're gonna need. So I'm gonna make some comments. Your comment box. Ah, and we're going to call this our Pesci ator. Okay, let's put that up there and let's just see what are we gonna need? Right? Um, what are the elements of an appreciator were present? It does two things, actually, Um, it's going to ah, delay notes. Right. And it's going Teoh transposed notes now are appreciated here is gonna be a little different than a normal or appreciator. What we're gonna actually make here is in our Pesci ater that we're gonna play a single note and we're gonna have it create, uh, cords and add all the extra notes. Right. Um, so that's what we're gonna do with our appreciator here. So I guess it's technically not in appreciator. It's more of ah delayed transpose er thing, but it sounds and acts like a radiator. So roll with me on this. Trust me. Okay? So we need to delay the note. We need to transpose notes. Um, we need Teoh output notes. I guess that's pretty much it. Right. So those are our three sections that we're gonna need, We might need more as we build it, and that's okay. We'll figure it out as we go, but this is going to get us started. Um, actually, don't even need this title up here. I don't know, I did that. So, um, now, one thing I'm going to do here is I'm going to and this is Ah, tiptoe. Have, um I'm gonna set this up so that I'm just going to do it once. I'm gonna add one additional note to what I play. Okay. I'm gonna test that. I'm going to make sure it works. Then once I have that all set up, I can kind of deploy that out. That doesn't make a lot of sense. The way I'm explaining right now. Hold on to that for a minute. Ah, and we're gonna walk through it and then I'll show you what I mean by that Cool. Okay, so now I've got my notes set up. So I know what I'm gonna be doing. I can kind of section off my different processes here. Let's break through a new video, then we'll dive in. 23. 25 DelayingNotes: Okay, so to get started. Um, let's set these aside for a minute and just look at delaying notes is what we're going to need to do now. We've done this before, right? And we could just put a pipe object right in here, and we would delay notes, right. But we would also delay everything. Um, which isn't really what we want, right? Like if I send control messages, I don't want those. Are pesci ated in the same way? Right? So I've got to parse out some some numbers here. Basically, I don't want all midi data. I only want notes. So this is kind of what I was showing you earlier about the note in object. I'm gonna make a note in. And what this is gonna dio is this is Onley gonna show me notes? It's not gonna show me any other MIDI data. That's not notes. Ah, and in particular, its gonna show me the note number, the meeting, Um, the midi value of the note, the velocity, it's right there. And the channel. Okay, So here's what's kind of weird about this is that this object is one of the kind of rare objects that's going to communicate back to live the note. We don't need to plug anything into this because it does have an input. Let's see what that takes. Port messages sends Midi input device port so we could tell it what channel to listen to. What port? Things like that. But we don't have to, um this could talk directly to our live track, as can Midian. Right? So that means if we have note in, we only admit, Ian, and we're not gonna need many out either, because we're gonna have to use something else. But let's hold on to that for a minute. Well, I take that back, we might need it. So let's just put that down there from it. So note in, that's gonna show us everything we need. So let's have a look at what's coming in. I'm gonna throw some number boxes on there. In fact, this is a really good ah, time to visit our, uh oops, that's number to visit. Our helpful. Because what's this? See, this is a great example. See, here's note in and here's three number boxes and they show us Pitch velocity and Midi Channel right, And you can see. Oops, market. So here's I'm gonna do, watch this. This is exactly what I was just about to set up, right? But they've got it all set up, and it's quick and easy. So I'm just gonna unlock this like these things on Select that. So, like that Copy close that instead of doing all this, it's gonna pace that in there, right? Because it's the exact same thing, you know, Tighten it up a little bit. So there I have it. So this font is a little weird, So let's let's investigate how toe change that font color. We need to go to the inspector command. I eso you just click on any object comment? Anything. Command I text color. Let's turn that black unclothed that take on the next one. And I could do these all at once, I think. But the object inspector will end up being very important to you whenever you're kind of in a pinch for how to figure something out. Check out that object, Inspector. It's just command I and see what options air in there. You're gonna find some interesting stuff sometimes. Okay, so I'm gonna lock it place of notes. There we have him. Right. So I've got pitches coming in here. I've got my velocity showing there. Right. I got admitted Channel there. I'm all everything's flowing in on many channel one right now, so that's not changing. And that's just fine. Okay, so now I can see my notes. Right. So now I needed to delay notes. This is going to be a little trickier, right? Because I need to keep this message intact. Let's look at what it needs to look like on the output. So let's make a note out. Object. Okay, Now you can see this. No doubt. Looks a bit like an upside down note in. Right. So what does it need? It needs pitch. I need velocity. That means the media channel. Right. So I could run these direct down into the note out, and I would have a pretty nice no message. Right? But that's gonna causing problems. Ah, well, that's not gonna causing problems. That's totally gonna work. But I'm not gonna do anything right. Like my first step here is gonna be to delay these and notes. So what kind of delayed? Oh, I need first. Let's go there um I need to delay all three of these so I could use a pipe. Let's use a pipe. That seems like a good way to do it because it's gonna delay numbers, which is what we're doing. So if I run that number into the pipe and then the pipe into you, the note out, that should work, right? Let's do that. So it's not as ugly. Now can I do this? And then this Is that gonna work? No, it's not gonna work because the pipe is basically a funnel. It's a pipe, if you will. You know, they name these objects smartly. So these numbers are going to get confused on their way out. And the same thing is going to go out to here and here. That's not gonna work. So what's my solution? The easiest solution. Make another pipe. And just to be consistent, let's make 1/3 1 for the MIDI Channel. Even though we don't really need one for the MIDI channels. It's not changing, but let's just be consistent now. Ah, we've got a delay. We're delaying our notes going in and out, and that's all fine. However, um, we need to adjust the delay amount. Right? So let's do our dial trick. Right? Something to you. I object. Scroll down. Let's add a dial. Okay, let's make that guy nice and big. Remember, this is 0 to 1 27 So I got Ah, add some math to it. Let's multiply it by. I want us to be kind of big. So let's say 3500. Yes, we're going out of the dial into our multiply. It's thrown number box on there. Just that we can see what we're doing. We don't need it, but it's handy. Okay, that's locket. And have a look. Uh, yeah, we don't want to multiply by 3500. We want to multiply by. Ah, three no. 35 1 of my thinking is really early for me, so forgive me. OK, that gets us up to four seconds, you know, and down toe 70 milliseconds or so. Ok, that's pretty good. Let's call it good. Now, how can I use this dial to control all three delays? Because these have to be the same. At least these two have to be the same. This one isn't changing, so I don't care about it as much. But these two have to be the same because the note name and the velocity have to show up at the note out at the same time and referred to put it together as a message. There's some other tricks we could do to so that it would wouldn't really have to be at the same time. But just to keep things simple, it has show up more or less the same time. But check this out. We've got one dial. We've got a number formatted. Well, all we have to do is this right, That one dialogue can control three different things. So now all three of those pipes have the same dilemma, right? Fantastic. Now what we don't have is a dry signal like we had before selling a scooch everything over . I love it when things just get really nice and pretty like that. So let's have a dry signal. Ah, remember what we're gonna need if we're gonna put a toggle on it to do that, move that over like this. Nice and big is gonna be a dry signal toggle, which actually for an arpeggio later we probably don't need because I think we always want to hear the dry signal, but let's put one on there. Anyway, this practice is exactly what we did before going to say Gate, and I'm gonna plug this into the left inlet. I'm gonna put it over here, and I'm gonna put my pitch through it, and then my pitch into the pitch, right, make another gate. Same toggle and the left inlet, the velocity to the right and let and then that into the velocity one more time. Toggle into left inlet. Many channel into that right and then output into the channel. Okay, I know this is getting ugly because we've got a lot of cables, but hopefully it makes sense what we're doing, right. We've got a toggle. And these three gates are just controlling the dry signal, right? Just the unaffected UN delayed signal. These three are doing a delay by this amount. So all we really have here is two things. We just have it three times, right? Cool. Um, okay, so I've got a delay away to delay notes. Now, I'm only delaying one time, but that's OK. Um, let's continue on and do our transposing of notes and then we'll I would put knows. Well, let's Let's make sure this works first. Ah, let's give that a value. And you know what I didn't do? I didn't put an instrument on my track. There it is. Okay, let's let the dry signal through. Oops. And there it is. One more time. Some play notes dry came through delay of almost four seconds and it comes back. Great. Okay, so we just made a little bit more fancy Midi delay. That's Onley. Delaying notes, right. Like I could move controllers. They're not getting billet. Okay, let's break to another video, and then we'll work on transposing those notes. 24. 26 transposingNotes: Okay, so the next thing we need to dio is transposing note. So this delaying notes is done. Let's actually put that. Well, let's just get rid of that comment for now. Now, let's transpose the notes. No, we want to transpose these ones, right? Are actually just This is the only thing we care about. We don't need to transpose the velocity, and we don't need to transpose theme any channel. Right? Um, we just need to transport this. So let's first ad how we're gonna do it. So let's have a number box. Let's put that number box up here. Let's put a comment on it for what we're gonna call. Let's say transposition one. Okay. Now, why did I call it one? Cause we're gonna add more later. We're gonna add a 23 and four. Um, maybe don't for Okay, so now I need to transpose this number. So first things first. Let's look at what we're getting out of that. Throwing a number box on it, Play notes. Here it is. Okay, so I'm getting a MIDI number. Ah, Midi note value. Right. This is very convenient for us. That's exactly what I want. Because transposing these is as simple as changing it to a different number. Right? And how do I change one? Number two? Another number? Math. I add stuff to it. So here's what I'm gonna dio take this number and I'm going to say that number I have Ah, plus object here. So now we've seen Multiplied before we saw it right here, actually, but And we can do this with any of the math operators here is I'm gonna say, Plus this And then instead of giving in an argument of plus what? Right. So if I had an argument of 10 here, it would be this number plus 10 would be the output. But since I don't have a number here, it's gonna be the right inlet. So these two numbers, it's going to be this Plus this right now, it has to get something from this. So this has to output something else. It's gonna be plunged euro all the time. But we'll get to that in just a second. Okay, now, I was gonna tuck this in here. The output of this goes to our note, and we don't want the output of directly out of the pipe anymore, right? And that's really kind of it. Right now we're transposing that note. So here we go. Let's give this a number. Let's say 12 12 is gonna make it an octave higher. So we should here now. If I play a single note, we'll hear the note because we're on the dry and then we'll hear the note an octave higher . Right. Uh, in three seconds, let's shorten that. We don't have all day here. Shorten that down to about one second. That works. Um, so we're gonna hear the note, and then we're gonna hear the note one second later, an octave higher because 12 is there. If we add 12 to the note that I play, that's gonna play an active fire. So here we go. I'm gonna play seat, meet it worked, right? I'll play a C major scale my cable, my microphone cable landed on a key. Neat. Okay. And I can adjust us to whatever I want. Now I could say for right and it transport is by four. I give a negative number, and that's totally fine, because we're just adding here. So if I give it if I play note number 57 I say plus negative 10. It's gonna play. What number? 47. Right. It's gonna go down. I gave numbers. Totally okay. In this case. Okay, so we did our transposition, right? Piece of cake. Uh, and we're actually out putting notes, so we've already done that, too. So transposing is done out. Putting notes is done. We're not gonna need this midi out in this case. So this is our patch, but I want to go further. Let's add more notes, right? Cause right now we sort of having a refrigerator. It's only gonna play one extra note, though. So let's try toe. Let's try to deploy this out. This is what I was talking about earlier. What I mean is, I want to take some of this stuff and duplicated so that I have three or four notes coming out without having to rebuild the whole everything. So I'll show you how to do that in the next video 25. 27 DeployingAndEncapsulating: All right, so let's talk about kind of deploying this out. There's two ways we can do this. There's the somewhat confusing but elegant way. And there's the ugly but easier to understand way I'm gonna show you both. Lucky you. So let's do the ugly way. But easier to understand. First, here's I'm gonna do. I'm gonna take this stuff right, and I'm going to copy it some holding down option click and drag. Okay. This is the heart of my our pleasure right here. Because I've got my delay stuff for all my mini values, my transposition and my delay amount. Here. I need to re hook up a couple things, though. Need to re hook up this dial. I'm going to change that in a minute. But actually, let's not re hook up the dial. Let's deal with that dial first. So what I can do here is Aiken set this delay up to be related to this delay by some kind of proportion, right? Like what if I want this to be half of? I want this to be half of that, right? So basically, this delay is going to be twice as fast as this one or twice a slow Let's do twice a slow. What That would mean. That is, if this is 1/4 note. This is an eighth note is basically what I'm saying here. So how would I do that? Actually, quite simply, instead of times 35 having just two times two. And then instead of taking from here from the dial, I would actually take the output here to see what's happening here. So I'm gonna take the value of the first delay, the number of milliseconds, multiply it by two. Right. And that's gonna be my second delay. The length, right? So now this style is controlling both delays, but in a proportional relationship, right. Cool. The next time I need to hook up is all my Midian phone. This is where we're gonna get a little ugly. So many channel velocity really is going. The left inlet. Okay. Does it hooked up now my transposition. Right. So here's transposition number one. Let's duplicate that. I option clicking and dragging. You can also move. Ah highlighted objects around the arrow keys to do like fine tuning stuff. Change this to transposition number two and this has to go into my plus right and then to the note out. Right then everything goes to the no doubt. Now I can do two things here. I can actually run everything into the same note out like that if I wanted to. Or another thing I could do here is actually could make another. No doubt, if I wanted to. Um, sometimes you see people do things this way and sometimes the other, um, with multiple, no doubts or single no doubts. I don't think there's any difference in doing a single note out or the other, no doubt are multiple, No doubts. And I think in the end it acts as one big, no doubt, um, but I'm sure there's some thing. There's some little reason that there's a difference, but, ah, in terms of what you hear and how it behaves. I've never noticed a difference, so sometimes it's cleaner. Just do this. Everything okay? We should be all set. So let's test it before we test it. We've got to give some values here, so let's give it's give this one. Let's put a seven here, and you can just type into these number boxes. By the way, if you're locked. If you're patches locked once you're once you click on one of these and it turns orange, you just type so seven and 12 of my trance positions. Let's give this a value of just something. Let's make it kind of short. Okay, Now I play a single note, right? It works. So I'm just playing individual notes here. Um, let's make that faster. So I'm gonna pull this down now. Everything's going faster Meat, right? Sounds pretty cool. Um, I get rid of my dry and that's gone. I could make this really long if I want. Right meat. Okay, let's add another one right now that we know how to do that, we just take the poison pieces. We need the poise. Is the pieces we need are these two pieces, So I just clicked on those. Now I'm gonna hold down, shift and draw a box around all this. And now I've got all that stuff. Option click and drag. Change this to your transposition three. And just for cleanliness is gonna move this over using the arrow keys here. Now I gotta reconnect a few things. This now what? I want the time of this one to be, Um, I could double this again. Um, but that's gonna be too long. What I'd really want if I wanted to act as 16th notes, I'd want to multiply it. I believe by 1.25 Right. Um, that's gonna get me in trouble. Let's just stay kind of simple here. And let's just multiply it by three and take the original. Let's just see what happens. So we multiply the original by air, the first delays by three. Ah, and see what that gets us. It's gonna be kind of weird. Um, actually, no, I have a better idea. I've got idea. Trust me. Okay. Ah, I'm gonna take Oh, yeah. No, I'll stick to my original idea. Times three. Let's go. 10 3 Cool. Um, okay. Transposition is hooked up. That's hooked up. We gotta hook up our our data coming in. So the ugly bits. Hoops. Sure, you're going into the right channel. Many challenges there. Velocity goes there and pitch goes there. Now we're set. Right. So let's give this a transposition of let's say, let's do something lower. Let's do Ah to just for the heck of it. So it's gonna go up, up, down from the previous. Let's give we gotta wiggle this to get some data into this one, because it doesn't have time to do that. Math or not time, but didn't have enough information to do that math operation when we set this up. Always said his times three. We didn't say what. So we got to move this to give it some data for toe Spit out a number down here, But now we should be all set. So I'm gonna play a note. Go. Let's do that faster. Great. Right. Um, Weaken Dio. And so basically, we can do this all day long, right? Like, we can keep deploying this because we've got this little set of stuff here. This and this. Oops. This is basically the delay in transposition stuff that we need. Um, and we could just copy this out all day long. We could make our patch longer. And we can do this all day long, right? That's that's one way we could do it, but let me show you another way. That's a little bit cleaner, um, than dealing with all this. Watch this. This is gonna be totally sweet. Let's take this whole thing. Not this. So I'm gonna highlight anything. I don't need to actually interact with this. I want to interact with that. I need to plug in some numbers, so But I'm gonna take all the guts here. I'm gonna use this cool trick called encapsulate. It's right here. Okay, Watch this. What that did is it made what looks like its own object with its own inlets and outlets. You can do this any time you want. You can actually make your own objects all the time, and we'll talk about that later. Um, but what this encapsulate did is it took all of this stuff, left everything connected by inlets. And I don't even need an outlet because I put the note in in it. So what? So if I lock it and then double click on it, I can see what's inside. These are inlets, and these are just objects right here. And let's And here's my whole thing. So that's still gonna work. So why would I do that versus this, right? The results is gonna be exactly the same, right? It still works exactly the same. Um, doing it this way versus that way right here is the difference. If I want to deploy this out now, I'll have to do. Is this right? I can do this all day long, right? And I still have to hook up all of these things. But now I've got, like, I don't know, 50 of the notes once I hooked them all up, right? So it can be really convenient. And inside each one of these is that whole patch. So that's the encapsulate. It kind of can keep everything a lot cleaner. So this this is an object, right? Called P. Which stands for patch er right? It's its own patch. Er you can make one of these if you make an object called P space and then hit return Oops and click out of it. Oops. You actually got to give it a name. So p and then name it Something. Anything you want. Caps Lock is on. What? What did I do? They did not like caps. There we go. So p ah creates a sub patch and you can build a patch in here that has inlets and outlets. Right? And as soon as I add inlets and outlets to my sub patch. They show up here right? So you can make these sub patches kind of keep things clean. And now I have a whole other patch there. And what's even Wilder's? You can save these sub patches and then call them up later. As if there were any other kind of object. Talk more about that later. Let's get rid of all that. But now we have a nice cool our progenitor. Uh, right. Um, let's change this to B. Let's make that two. Ah, that four in that seven. Uh, that's fun. Okay, cool. So, um, I want to save this patch and uploaded for you in the next video, so make this patch. Um, I know it looks really ugly in here, but hopefully if you're following along, you understand that what is doing this kind of a thing Three times and you can kind of follow, You know, the guts of the patch, which is this group of things right here and how this worked. Cool. Um, okay. So I'm gonna add this patch into the next Ah lesson is gonna be a downloading for this path so you can go frowned with mine if you want. If yours doesn't work, dissect mind. Figure out what I did that you didn't do. Um And then it's time to start talking about audio. Like working with audio signals. We've done a lot with MIDI, but now it's time to get into working with an audio signal. Off we go. 26. 29 TildeAndYelloPatchChords: Okay, Now that we've done so many stuff, it's time to talk about some audio stuff. Now, this is kind of the MSP wing, although we don't really even need to think about that. Um, So here's what we're gonna do here. So I've got Well, let me I'm gonna load up Max for live and in Max. Audio effect. Okay, so here's what Our default Max audio effect looks like it's got this plug in tilda object and a plug out tilda object. Now, these just like the median and midi out these air. The objects that get the audio from this track in life, right? Everything else kind of same. So I'm gonna open that up, make it nice and big, so we can take a look. Okay, So there are two important things to notice here. The tilde and the yellow striped patch courts. Um, the yellow striped patch cords tell us that an audio signal is flowing through them. So if we have a patch that was doing something like, do you steal something we've seen before? Something like that. We know there is data or numbers or words or some kind of non audio rate signal flowing through here because the patch cord is just a thin black line. Here we have thes yellow lines, which are audio signals. So you can kind of see quickly at a glance when you've got a complicated patch, you can tell like, Okay, audio is going from here to here to here, right? So it's just a visual cue. Ah, sometimes we use green striped patch cords, which actually shows that video is flowing through those patch cords. Sometimes you might see that the other thing is the tilde. Now the tilde is away. It's just kind of a naming convention that we use to show that this is an object that processes audio. We saw earlier the case of delay. Right. So here we have two different delay objects that we load him up. Here's a delay. And here's a delay, Right. Same object. Sort of. This is a delay. This is delay, Tilda. What's the difference, right? It's actually a pretty huge difference. Right. Um, this one is going to delay bangs as we've seen, this one is going to delay some kind of audio signal now, incidentally, this is not what you would want to use if you want to build an actual delay effect, Um, which we're gonna do actually very shortly. That's actually the next project we're gonna do. So just like two videos away. Um, but this is a kind of audio rate delay. So that teal, the symbol, shows us that we're working with some kind of audio rate. Let's create an object that makes a sine wave. The object is called cycle, Tilda. Right, cause it's gonna output audio, right? And we can actually to do this, it's plug that guy right in there, plug it into both channels, right? Right and left. We have down here. So this cycle is just going This is creating a sine wave, and it's just going, but, ah, it's creating a zero hertz cycle sine wave. So it's given an argument of the frequency group, and there we go. Now we have a cycle a sine wave, right? That's cycle, Tilda, because it's gonna output audio. This particular object can input. Ah, not audio. Let's add a dial there frequency. Right. So now yeah. Okay. I'm gonna shut that up because it's driving me insane. Okay. Ah, this signal. So this accepts just a data signal, which is the number of stuff, but it, er the frequency of the oscillator, the sine wave, but outputs audio rate kept. So, um, the two things that I want you get out of this little lesson. The yellow cables mean there's audio signal flowing through there, and that's gonna happen automatically. You're gonna see those yellow cables, like, if I just grab a cable out of this cycle, it's yellow, right? Because that's telling me we've got audio. Um, and the tilde means this is an audio rate. Cool. Okay, so let's get in and talking about getting the audio from a Bolton. 27. 30 AudioUI: Okay, getting the audio from Ah, Able 10 is actually pretty easy, because, um, we just need this plug in and plug out, sends it back. So what I would do here, just like before, I would get rid of these comments. You could maybe leave that left and right if you want. Although it's pretty obvious that the left side is the left and the right side is the right . Throw that down there. And now we've got the signal. So I play this, okay, I'm playing a clip. It's going into my plug in here funneling straight through to my plug out. Right. If I delete this cable, we're gonna lose the right side of it by to leave this cable. We're gonna you lose the other side of it, right? I can see what's happening by looking at some of the you I objects, right? User interface objects. Let's look at ah, gain object. Right. So this is a gain object. This is the live gain, which means it's a gain object that's meant to look like live eso. It's meant to look like these down here so I can just plug my signal into that. It's has a right and a left. And then I can scale the output by just changing my volume here. And then if I want Teoh, I consented to the output. Now note that this has four outputs. It will be sure that you're sending right thing. Channel one? Yep. And Channel two Yes, Channel two. The other two outputs are the parameter value. So the value of the slider and amplitude of every channel and decibels. So now we made a volume cider, right? There's obviously a 1,000,000 more things we could do with that. But ah, just to show you getting audio from Mableton and back to a built in, it's our plug in and plug out objects. So those are the beginning in the ends of your patches. If you're making an audio effect, Cool. Um, great. With that, let's dive in and let's just make an audio delay and just see what happens, right? Let's do it 28. 31: All right, everyone, let's dive in and do another project. So this is our third project. Now, before we dive into this, I want to say one thing. If I repeat something like, if I go over something that we've already gone over before, or like, an object that we've already gone over before Don't worry about it. It's OK. Right? Because, um, that's what we're really doing here. Is learning a language? I'm gonna I might you know, say, here's this object. We've seen it before. We're gonna do it again, and that's okay. Ah, because you can't possibly review this stuff too much. So I tend to explain every step that I'm doing while I'm doing it. Um, even if it's something I've explained before, I'm gonna explain it again as we're doing it. Just to try to get you to think like Max get you. Ah, get your head in the right space for Max. So this project Mm. What we're gonna do is we're gonna build an audio delay. We built a midi delay, right? We just use that pipe. That was our data delay. Object. Um, but now we're gonna do in audio delay. Um so this one's a little more complicated, so let's get started. So first thing we need is we need a max audio effect now, because we want audio in and out. Right? Um, I just put that on a midi track. Just dumb. Ah, let's just throw that on audio track. Here we go. So now have a max audio effect. Remember, the main difference between audio effects, many effects and instrument effects It's what comes in and out. Other than now, we can pretty much do whatever we want inside the effect. It's what we're gonna easily get from, ah, live here and an audio effect. We get audio coming into that channel, and we send out audio from that channel. Nice and easy. So let's open this up by hitting the patra box here. Okay, here we are. Something to make my screen nice and big here, cause that's how I roll. I'm gonna get rid of these extra little comments here. The audio to a live build your device here, left and right, cause I know that now I'm good. All right. So I got plug in and plug out, right, So Ah, this is our audio coming in from Max. And this is go or sorry. Coming in from live. This is going out from live. So whatever goes in, these two inlets is gonna get sent to our left and right here. So this is our left and right. Ah. Sending to the output. And this is our left and right coming from the input. You know, if I just wanted to be a jerk, what I could do is I could do this now. I'm just swapping channels, right? Anything coming in the left inlet or into the left channel of Ah, this track is going out the right and vice versa. I just swap channels, right. Just to show you what you can do. No, I did do one little trick there that I don't think I've ever explained. If you click on a cable on a patch cable here, see this little red diamond? This is kind of a newer thing. I can actually let's delete that one and do it on this one. I can actually, instead of deleting this and redrawing the whole thing, I can actually just grab that little diamond click and drag, and I've got the cable and I could move it to where I need to. It's a kind of quick little usability thing, but I'm gonna disconnect both those, um because I need to put it to lay line in here. So we're gonna do the same thing we did in the MIDI DeLay. Right? So let's outline what we need and let's use comments to do it. So first thing I'm gonna need is and audio input pretty much got done. That's that right there. Right? That's our audio coming in to the patch. Let's copy that. That was ah, option. Click and drag. Now, what needs to happen next is we need to delay the signal. Ah, by some amount. So we need an adjustment for the delay amount. And then let's add also a way to you scale the volume eso that we have some control over the volume on the output. And then let's do one other thing and let's put in here the ability to let the dry signal through. Let's call it a dry signal toggle. We're gonna add a toggle switch, just like we did before you let the dry signal through. That's the UN delayed sound right So we want that to come through. That would be this. Basically, we want to do that. But I want to put a toggle on here so that I can choose to have it on there or not. And then let's get even crazier with it and say, for bonus points will put it over here. Let's add, um, have a second. We'll call it a second tap of the delay and then we'll call will make 1/3 12 Okay, so a tap delay. I think we talked about this earlier, but that's like a kind of old school term for like, if you have a delay that hits three times and it gets a little quieter every time, Um, that's a three tapped delay, something like that. So that means that if it's gonna get quieter every time I need to scale the volume on all of those taps. Also, I'm just kind of arbitrarily putting this off to the right side over here, because I think that's where I'm gonna build it. So this is my main delay. Actually, what I could do is this. And then the dry signal toggle is probably gonna be somewhere in between these two objects , so I'm just kind of scoping out my territory here. I don't have to stick to this. These air just comments right there. Just little notes for me. Um, but this kind of helps me outline what I'm gonna do. See what it is, how it's gonna work. And ah, it's gonna, uh, help me start programming. So Ah, let's dive in. I think this time. Well, let's let's dive in to this stuff. The meat and potatoes, right? This is actually relatively easy once we have this done, and this is different, but ah, well will do that soon. So let's just dive into this stuff and start setting up our delay. 29. 32 DelDelayTapinTapout: Okay, so here we go. We've got our audio signal. It's coming in right here. Right. So Ah, I could delete that. Or you know what? Let's do something fun. Here. Let's add a u I object to see that. So we've got this meter object here. This is exactly what it sounds like. It's just a level meter. So let me put something on this track when we just grab. Ah, just some little don't drop dumb drum loop, something random. So I'm not gonna get to sick of hearing a whole bunch. I'm gonna start that moving now. I don't hear it. Right, because this is where that's going, right? It's not going anywhere because my plug in and play out aren't connected. But what I can do is I can connect these. And now I can see that signal, right? And this little meter object. This is well, two things about this that I want to point out first. This is called Meter, Tilda. So I could actually make one of these. I could either grab it right here, or I could actually just make an object called Meter Tilda and watch what happens when you hit return Boom. It just turned into a meter. So, you know, they're still objects, you know, like all of these things are objects. Ah, so I'm looking at the Left Channel here. Here's the other thing. I wanted to show you about this. This has a kind of hidden feature you're thinking like, you know, most of the time, I meters are vertical, not horizontal, like this took us out. I can make this longer and bigger, but if I stretch it like this, it turns vertical. So I could do that. I don't need it. Like to be nice and huge like that. So let's make it just little tiny like that. I'm gonna copy this with my option. Click and drag. Do one for the other channel. There we go. Now I see that drum loop coming in. There are the only real reason I'm doing that is so I can confirm that I'm getting the signal in which I know I am, because I'm not really doing anything yet, But, you know, it's a good excuse to show you the meter object. Sometimes those are handy to have in there, so you can see what you're doing. Okay, so that's my audio input. So let's delete that comment, because I don't need that anymore. The delay signal. OK, so now we've got a delay stuff. I'm gonna move everything down. Now. We got to delay the signal. This This is one of the more confusing things about Max in particular. Delay objects and the various delay objects. We talked about this before. There's pipe. There's Del. There's delay. So there's a lot of different objects for delaying stuff. Ah, this delay, Tilda one isn't really going to be what we want. Um, delays a signal, but it does it in. Ah, let's look at the help. Here's the help file for it. The affected lay a signal by a certain amount of time. The delay time can be specified in samples O are using the max time format. So this is for delaying, like a really short amount of stuff like delay by samples. You know what I mean? Like a very short amount of time, what we want. And this is the most un intuitive Max object. We want one called tap in Tilda, we can see the help or the description input to a delay line. That means that it's going. The signal's gonna go into a delay line, and it's gonna hang out there until we tell it to come out. So here's what we're gonna do. This is kind of a finicky object, so I'm gonna open the help so I can see what's happening. Okay, so here is the audio signal. It's going in to tap in. Then it's getting connected to a tap out. And this has an argument of a certain amount of time one second in this case, and this is top out at another certain amount of time. What we're doing here to kind of summarize all of this, the tappin object needs toe have your maximum delay time that you're gonna want to use. So let's say how long is going to be our biggest delay. Let's say 10 seconds. So 10,000 milliseconds, it's gonna make that really high. I don't need to use it. It's fine. I'm just kind of setting up a buffer now, so let's just do one channel at a time here. It's gonna run my signal in there. You notice I just created a problem, right? This is a problem. What I just did. It's not really obvious right away, but if you think about it, it's problem. Because this should be carrying an audio signal, right? What I just did, It's not why is it not? Let's hover over this output. This is out putting the peak value for each metering interval. So this is showing me my peak value, which is not what I wanted to lay. So we can't actually take our signal out of the meter object. We have to take it out of the plug in object. So now we know because this is this yellow thing. Ah, we're getting an audio signal there, okay? No, it's not going anywhere. We don't take our audio out of tap in. This is just a weird object. I don't know how to explain this other than just to show you what you do here. So what I have to do on this particular object, make another object called Tap out Tilda, And then I give that the delay amount that actually wants. So let's set that to 1001 2nd Okay, Now I'm gonna connect these two and then I'm gonna connect tap out to my plug out. Now if you're if you've been paying attention, you're saying, Why is this not passing audio here? It's weird. This is just a weird one. Ah, so I'm sorry, but it's just weird. Ah, I can actually explain it a little bit. What's happening is tap in is imagine. There's something over here. It's not really over here, but just imagine that. Imagine there's something over here and it's a buffer. Ah, buffers. Job is it's like a bucket. It's just gonna hold stuff you put in it. So tappin is actually dumping the audio signal into this thing over here. Tap out is saying Okay, after one second, I'm gonna go get it and pull it back into tap out and then feed it through. So both of these things are referencing this other thing. That's kind of what's happening. So that's why there's not directly audio passing between the two because they're both referencing this buffer thing. You don't need to deal with any of that. All you need to know is this is how you set up an audio delay. Okay, so we are now delaying the signal by some amount. This is the amount now We need to be able to change that amount, of course. So let's put a dial on that bad boy. Let's go to our you I objects and find ourselves a good dial for my dialogo. It's through the live dial because it looks like live. Let's put that up here. Now, remember, we're gonna have to do some math here to get it into the range of seconds. So let's put, um, a number box on it just so we can scope out what's happening here. So I'm gonna lock it through this up. And, of course, we're at the range of 0 to 1 27 Let's get ourselves into a little more healthy range by multiplying that by, ah 10. It's kind of randomly guessing here, so that gets me 0 to 12. 70 gets me over a second. I kind of want to hire DeLay than just a second in some ways. So let's say let's say 15. Yeah, that's gonna get me a nice big number. Cool. Now tap out is where I need to put that number. Rex, I need to override this argument of 1000 Tap out. Is this special? Um, object in that if you feed it a tap in, it knows we're giving it to tap in. If you give it a number, it knows to use that as the delay amount. So it Ah, it only needs one inlet because it knows how to tell the difference between what it's getting. We would normally expect a second inlet here to deal with that number, but that's OK. This and you can find out all of this stuff. If we studied the help file for this, we would be able to learn all of these things. So that's a good reason to spend some time on the help file. Okay, so now I've got my signal. When I changed the dialogue kind of glitches out for a second because it's it's kind of having to dump out that bucket that I was telling you about a minute ago and then refill it . And then it sounds the same because we can't hear the original right. We can't were not yet hearing the dry signal, so we can't really tell it's delayed. But trust me, it is now. One thing we haven't done yet is we're only motto here. We're only doing this for one channel. So how do we do this for two channels? Well, let's get rid of this first on that next cause we've done both those two things. Here's what we do. We just copy these, give it the same number if we want and take our second signal. Here we go. Now. It's interesting. Um, I don't really have audio set up here. Ah, but hopefully you can hear that. Um, they're delayed a different amounts. Right wire the dilated. Different amounts. I shouldn't be. They were right and left channel. The reason is Ah, this one hasn't got a delay number yet. It's defaulted to 1000 while this one is sitting at 11,000 are 1170 milliseconds. So this one needs a new number in order for it to be using the dial. Right. So let's give it any number there now. They're in sync. As soon as I gave it anything, As soon as I wiggle this at all, it snapped into sync. Okay, Now I have a lot of stuff done. What I haven't done yet a scale the volume or do the toggle. Let's do the scaling the volume next. And then we'll deal with the toggle 30. 33 VolumeControl: Okay. How about some volume in this thing? So what we're gonna do here, gonna unlock it, go to my object palette? I'm gonna grab a gain slider. Right. This works just like the meter slider, except we can control it. So this looks like a gain slider. And what we can do. It looks like a volume knob. So I'm just gonna do well, a little, uh, diamond trick Here. Pull that off. Put that in there to make another one. We'll put that in there. Go out of here. Now, These are tricky, because watch. I'm gonna make this bigger. It's hard to tell when it's really small like that, that there's two inlets up here, right? And if you put this into the wrong one Ah, you're going? It's not gonna work. And the same thing with the outlet. So, like, down here, there's actually a left and a right one here, and I got to be sure I grab the left. One is a little tricky. Let's make that one not ridiculous by re copying over that one. Okay. No, we're set up. That's locket. We don't hear anything cause we know many volume there. We are so I can just click and drag on these to scale the volume. Now there's another way we could do this. Let's get rid of those. Um, the other way is to use the live die or the ah live gain, uh, which is nice. So let's go to the live objects. The live meter it's called. Ah, this is nice because it can be stereo. All right, That's not what I was looking for. Live game. It was called Live Game. Let's get rid of that. The thing that's nice about the live gain is that a It looks like live. Um, so that could be handy B. It's stereo. So you only need one on you could do two channels and see it has a meter built in, right. So we don't have to set up one of these separately if we want to see our signal. So this is kind of a quicker step to do it, um, in Max for live. Let's take this into our left in. You are right. And then our outputs. And this has four outputs. We want the left to where we are. Okay? And now we've got against letter best, right? So now we're just scaling the volume now. Scaling the volume was gonna be a little trickier when we go into these other taps, because we wanted to be, ah, percentage of this one all the time. So we're going to do a couple little tricks there, but ah, it's okay. It will be fun. So scaling the volume check scared of that one. Okay, up next. Let's do our dry signal so that we can actually prove that it's delaying, which we kind of do a little bit right now by watch this. Put those side to side, and you can kind to tell that it's delaying, but it's still hard to know without hearing the dry for the next video. Let's add a toggle in so we can hear our dries ago. 31. 34 AudioToggle: okay, up next. Let's add a toggle to our audio. Now, you remember how we did toggle before, right? We took one of these objects a toggle. And but this is just a you I object, right? This just sends ones and zeros. We can't put an audio signal into this. This just wants bangs into it. And ah, it outputs ones and zeros. So this isn't gonna do anything to our audio, but this will control something that will do something to our audio. And when we looked at it before, I think we used a gate. Right. We put some numbers and we put our MIDI signal in here, and then Ah, so this is incoming gated messages. So that's the signal. And over here we said we gave it a toggle because this one's zero will close it. Which is what this outputs when it's not selected and a non zero will open it. And luckily, this outputs a one when it selected, which is a non zero. But this is gonna ah, gate messages, right? The key here is that it says incoming gated messages, um, not signals. So what we actually want is this one gate. Tilda, Of course. Right, because a tilde means it can handle audio signals. So that's mounts over this one. Input signal. Perfect. Right. So what we're gonna do here is we're gonna connect this toggle to the left side of this and then our audio signal right from the plug in to the right side. I'm gonna do that twice. I'm going to use the same toggle and the other inlet, and then I'm gonna run that straight to the plug out. Anyway. Say, Well, why don't you put against Ah, a little live game there. You're right. Why don't we Let's put another one of these in there. We don't have to, but why not? And they were to the output. Right now we have one toggle turning on and off both gates, right? You don't have to You You could do this if you wanted to. Maybe there's a use for doing this. So what happens now? Right now? I've got the left. Channel. Signal is going straight through, but not the right channel. And now opposite Now they're both going through now. They're both going off. What if you wanted to have the option to do this or the option to turn them both on and off . Watch this boom. This is getting kind of silly, but I'm trying to make a point, sort of, um, with this set up, what I can do is, let's say I want the left signal to go through. Boom. I do that. Let's say I want the right signal to go through. I do that. No signals going through both signals going through. Just click that one both signals off, right? This is gonna control in both. But if one if they're both on and I want you on that one off, I could do that. I don't know why you'd want to do that. And delay. Um, it's kind of weird, but there are some cases where that might be useful. And that's the joy of Max, because there's probably plugging designers all over the place, saying, Well, no one's gonna need this really bizarre weird functionality. So it's not Put it in there. But maybe you are that weirdo that needs that functionality with Max so you can just put it in, um so take up. So for now, I'm just gonna have one toggle that lets both those through for me. So I believe I stopped my track here. There it is. Okay, so I'm delaying by a little over a second. We're not hearing the dry, so we're only hearing the delay. And we can confirm that by looking down here this is the dry and this is the wet, the delayed signal. Let's open up the toggle and so we can hear the dry signal to All right, let's crank up our delay. Let's pull our delay all the way down to zero, and now we're gonna get fits. Um, phasing a little flan defect said it's like three millisecond delay. Okay? Actually, we're not setting it to a three millisecond delay when I did that, because we're multiplying it by 15 here. So now we're delaying by one millisecond gives us that flinch, some cool effects in here, You know, some cool Tammaro things. You confined its by these really short delays anyway, so that's our toggle. That's all we really need to dio It's gate Tilda, not gate, because we have an audio signal. Right? So put that through there. We had a toggle to it, and then we can control the gate. We can put it on a live game if we want, but we don't have to. We're good to go. Awesome. Okay. Ah, What's left over? We can get rid of this dressing. Otago. We did that. Let's add a second tap delay and scale the volume. This is where it gets kind of fun. 32. 35 MultiTaps: Okay, So you want to add a second tap to the delay, right? I'm gonna turn this down a little bit so I can talk over a little bit easier. It's still going. Okay, so let's unlock it now Here's what's cool about this. Tappin can have his money tap outs as our computer can handle. Let me just say that one more time. We only need to take the tappin once, but the tap out can be plentiful. So this is what that looks like. I'm gonna grab both of these an option click and drag. Boom. There's my second tap. All I got to do is connect these right? And then let's make another one of these for our tap out our second tap and let's well, we're here. Let's do 1/3 1 Connect those and I got to connect to my original tap in, right. So I just made two more taps, right. However, there's a slight problem in that. They're the same delay amount, right? So let's make these all proportional to this one. So we kind of did this, I think Ah, when we did the midi delay, let's take this this number let me set it something higher. Okay, let's take this number and for gonna make a divide by two. So this is always gonna be half of that one. And let's make this one the third tap behalf of that one. So it'll be 1/4. Okay, so I gotta hook these to my output. Oops. Way to go. Okay. This is when it's handy tohave these volumes in here because we're gonna We're having We have a lot of audio signals going. Let's move our live dial now A little bit. So now I've got all these taps going independent. All right, let's do, um let's maybe take a simpler sound. Not that higher. Here we go. Okay. So let's turn off all our delays. Here's our original sound that we're hearing. Okay, That's all it's doing without our first delay in that our 2nd 1 in 1/3 1 Okay, it's a little little more obvious now. Okay, Okay. We gotta do one more thing here, and let's just do it. Well, we're we're here. We're here. Um, what I want to do is I want to set these volumes to scale Ah, at the same rate for all three of the delays. So it's bunch those altogether. Just I can get them all in a row and see him. What I really want to happen is something like this. This happens there, always set in like a descending kind of way like that so that they're going down. Each tap is quieter, right? Here's how I could do that. Um, first wanting to do is figure out how I'm going to control the live game. Let's look at the help for live game. See, How can I just send it a number? Their signals going in. Let's look at prints, range, size and orientation. Okay, let's just look at the inputs. Okay? Here. What I see here is near the bottom int float parameter value. So that means that I can give it an integer or afloat. I'll talk about floats later, but it's a kind of number. Ah, it's just a number with a decimal point in it. Um, and that's going to set the value of the slider. So let's try that. Let's set up a number box here. Let's put that into here, see if I can control that. There we go. Okay, So this once a range of us liked about 10 to negative. 67 is my range of that slider. So what I'm gonna do here is I'm going to take another slider. Let's use Let's just use this generic slider and let's put it sideways up here. Okay? Is gonna be my volume Now, this is just a generic data slider. That's OK. It's not going to control any volume. Just gonna control the sliders themselves, right? No audio is gonna pass through this. So what I'm gonna do here his first? I'm gonna make a scale object to get it in range. So let's look at what the value of this slider object is by just connecting that to a number box 0 to 1 27 Of course. So the scale object? I believe we've looked at scale object going to tell you about it again. This takes four arguments. These air them. So the 1st 1 is the low number coming in, which is gonna be zero. That's from the slider up here. 2nd 1 is the high number coming in. Just gonna be 1 27 up here. The range of the thing coming in 3rd 1 is the range that we want going out. So their range of the thing we're connecting into, which is what did I say? Negative. 68 or so and the high range of the thing going out. So I think 10 he said not. This is gonna do a whole bunch of math for us really easily and format a number that can go into this very nicely all the way down, all the way up. Right? So all the scale object did with these arguments was convert this 01 27 into something that this volume slider, this this live gain liked, you know, it could could deal with really well, okay, now, here's the magic. What we need to do here is let's just do a very simple subtraction. I think that'll be easiest. So let's make an object and let's say minus way 20. So I'm gonna go out of this number box. So this number boxes controlling his first slider on the same minus 20 and then control the second slider. I'm gonna say, minus 20 again. So that minus 20 control, the third's like now they're always gonna be moving relative. See that as I move this slider, they go up. When they had the top, they hit the top. But at the bottom, they level off because they basically hit the lowest number of the slider can handle. And then it just sits at the bottom, right? But as they go up, they go up Now. I could do a little fancier math and make it proportional so that it stays. Um, but I start simple math would be a little bit more fun, since this patch is getting kind of complicated and ugly already. Okay, I think it's time we talk about making this thing look good so that we can use it, you know? So let's do that in the next video. 33. 36 Presentation Setup: Okay, so the last thing I want to do with this is let's just make it look good. So Ah, I think I talked in the very beginning of his glass about the different modes of Max in the presentation mode. Let's set this up so we can use this as a plug in and make it look kind of good. First thing when you need to do is add some stuff to presentation mode. Now, this is gonna be anything you're gonna want to see and touch to use it. Okay, so it's definitely this dial, so I'm going to control click on it and say, Add a presentation. It's gonna get this kind of salmon glow around it, right? Ah, this dry, wet. I'm gonna add that presentation. The volume slider at a presentation. Ah, see, what else do I need the rest of this is just Cody stuff. I don't really need it. I could see these sliders. These are all controlled by that. So I don't really need to see these sliders. This one might be nice to see because it's not being controlled by that one. So let's add that presentation so we can see the dry volume coming in. Okay, that's all I need to do in the first step. So I've got my couple things that I'm going to see in the presentation mode. Now let's go look at presentation mode. If you go down here to the bottom of the screen, you see this little button presentation mode. Watch the magic that happens when I click it. There it is. This is all we're going to see, and I can edit this right? So remember that little line? We don't really see that in presentation mode, so let's be sure we get everything where it needs to be. So this one says Live gain. Let's change that. So we can do is click on it. Come in. I It's our inspector in there. And then I think we change. It's so in this Inspector, we can see a lot of different stuff, um, parameters for this thing. Most of these we don't want to mess with, but short name. Let's change this to dry gain. And when I do that now, it says dry gain on it up there, right, that could make that look a little nicer. Let's make this a little smaller. So it's gonna fit and we can add stuff in presentation mode. So let's add a comment, because our best way of just getting texting here and let's call this simple delay. We don't need to add this presentation mode because we made it in presentation mode, but I can, ah, play with it a little bit by going Teoh View and then show fonts That's not in view. That's in objects, show fonts. I could make that bigger. That looks good. Put that up here. And you put this down here. Actually, let's put this over here. I want to change that toe that to something different. So let's go to command I on that. Go to that inspector and find the short name of it right here. Live dial. And what was this one Controlling This was controlling our delay amount. Oops, it's too long, Right? So let's just change that too amount. Okay, simple delay amount. Here's let's add a comment here and say Allow dry. Put that right there. When you make this a little smaller, that right there and then let's add another one of these right here and say ah se delay volume and then we'll put our dry gain at the end. These could go. It's crunch that up a little bit more There. Cool. Looks good. Okay, now let's go back to able to. Here's my effect, right? That's not what I just made, right. That's not what that looks like, because I can save it yet, so I got to save it. Let's call this simple delay saving my max audio effects as soon as I hit. Save. Keep your eyes down here. Boom. There it is, Right. But everything is weird, right? Because there's one more weird step and I don't know why this is not a default, but it's not. Um, we gotta do one more thing and that's to go into Oh, is it? Here it is. Ah, view Patch Inspector. So this is an inspector for the whole thing, and I have to click for this whole object that we just made this patch we just made. I have to click this open and presentation button. I click that close that window. Now let's say that one more time. See, we got our line back much when I save it now, Now it's actually running and it's actually showing us. Ah, the signal. So I close it and now I see I've got a lot more space. There's a dry signal. It's too long. Delay turns up. So now I've got a nice looking patch, right? So I can still go in and edit it. He's like, when I get out of presentation mode by clicking patching mode, watch what happens. Everything moves back to where it waas, right? I toggle between patching mode, does this cool little magic thing. So now that I know I've got a little more space, I could just, you know, move some stuff around. I could even do this, could tighten it horizontally. It's always gonna fill the space you give it. So if we did this, maybe this It doesn't need to be so long, I suppose. Put this over here. You could do that and then make this longer. Now I say it again and look at what my patch did on there. Right and close that and there's my patch. It looks a little bit better. So that's how you work with presentation mode. Okay, so we've made an audio Delano in the next patch. Are in the next video while thinking and patches. Now I'm gonna have dreams and patches. By the time I finished class, Um, in the next video, I'm gonna give you this file to download. And then after that, we're going to start start talking about talking to live communicating back and forth, which is basically asking questions of live like, What are you doing? What is your tempo? Are you playing Which track is playing? All of these different things. We can talk to live. Ah, and use that to control different things. Inside are patch pretty cool stuff. So, uh, next file download this thing, and then we're jumping to you, talking to life. 34. 39 Abstractions: OK, now it's time to start talking to live now when we get into the protocols of of going back and forth with live things can get a little more complicated. But I don't want you to freak out. Um, because we have an easy way or, well, relatively easy way around the complexity of some of these things. And this isn't just ah Max for live thing. This is all across the board and Max stuff. There's a trick. Weaken dio Ah, to take a complex thing and make it simple. Um, and it's called an abstraction. So in this first video, I want to talk to you about abstractions, and I'm going to show you some of the max for live abstractions. So what is an abstraction? Um, I don't think I've talked about this yet, so let me just show you it's pretty simple. Concept was gonna open. Ah, Max, Audio effect here. Now let's say there's something that we do a lot. Um, I don't know. Let's say something like this, so I have select 10. Let's make a random number generator about that. So do random 20. So this is going to generate a random number every time I send it a bang and let's see what that number is and let's say select one. Okay? Now, I've just created a very simple, very simple probability. Ah, Creator. Right, Because what's gonna happen with this little patch is that Well, let's put ah, bang. At the end of its we can see that it happened. So what's gonna happen here is that I'm gonna click this button and about one in 20 times. It's gonna be a one, cause this is random. About one in 20. It's gonna be a one. And that's going to trigger this bank so I can click this bunch times. There's one. There's another one. So it's just a probability generator, right? Really simple, really stupid. Okay, I'm just using this as an example. Now, let's say this is something I do all the time. Um, what I'm gonna do is I'm gonna make another object, and I think we looked at this already, but, um ah, I showed you the in and out thing. Ah, the inlet and outlet. And I think I talked about abstractions a little bit, but it's really important going forward. So I really want to be sure that you get it. Um, so I can make an abstraction here. One thing I could do the first way I could do it is just make a patch, er, by typing p like the object is P, and I'm gonna give it a name. I'm gonna call it random miser thing. I'm gonna hit Return in. A new window is gonna pop up. I'm going to go to this window. Copy that. Put it here. Okay, so now this entire window is inside this object. Okay, If I want to get in and out of it, an easy way to do that. Here's an outlet. And here's an inlet, so I could do that. And now I've got an inlet, an outlet here so I could control it from outside of it. But the guts of it is all inside there, right? So now when I hit this right, it's controlling inside that patch and outside that patch. But we're putting the bulk of the code inside here just to clean things up. That's all it really does. Now there's another way we could do this Instead of using these, we could use, send and receive objects. These are like wireless. Send. Ah, wireless connections is basically what they are. You don't You can use them with the in a patch. They don't have to be going into a sub patch like this or an abstraction, as we say. Ah, but they can. So I'm gonna make an object called Send, and then I have to give it a name. Let's call it Ah, random maker. So I could call that whatever I want. Uh, oops, that goes out here. So that's going to go here. So this button is going to send is gonna ask for a random number. And now in here, I have to change this to receive, receive random maker. Right. So now when I click this, this is gonna send the request. Random maker. This is going to receive it. And I have a wireless connection between those two things is gonna help you clean up stuff . If you do something a bunch of times, you can also do this. We're gonna copy that and put it out here. Sending receives are great because you can have, like, a 1,000,000 receives. If it's something you do a lot Ah, you know we can receive it Something all over the place. So I only have to hit it once and that receive Congar Oh, to a bunch of different places, right? So that could be handy just for tidiness not having to have patches all over the place. So with this one, I would do the opposite so I'd make an object, and this would send You can actually abbreviate send to just s. So if you do just s ah, as the object name that means send just kind of a shorthand. Eso sen Random selector. Select Random Select. Connect that to it. I'm just gonna copy this. Paced it out here and changed my r two or my s to in our for receive. What did I do wrong here? Oh, yeah, that's right. Goes up here. It's gonna be receiving it. Now. What's happening here is that I'm asking with this send inside of this patch so this patch doesn't have any ins or outs, right? None doesn't eat any. I could just throw it way over there, and I'm still using it just the same. Sooner or later, I'm gonna get my random number. There was one. It worked, right? So now I've got that. So that send and receive. Ah, this is the abstraction, right? This is another patch that Ah, this is another patch living in my patch. Right? So it's like patch inception. We could have another patch within this patch and another patch within that patch, and it can go deep levels and levels and levels and levels deep as many as you can imagine . So if I have disclosed, here's my patch. Ah, If I'm locked and I want to see it, I can double click on that and see inside of it. So there are a lot of patches are a lot of abstractions in max. There are just they look like objects. Um, but sometimes they're their own patch. Right? So these are abstractions. And the reason I'm pointing all of us out now or repointing all of it out now is because, um, Maxwell live comes with a big bunch of abstractions that are gonna be really useful to you . Ah, when learning Irwin, just communicating with Maxwell lives because if it's something like asking for the track volume, this is something that we might do all the time and There's no reason to write all this complicated code all the time when we can just spit it in there as one object. And ah, that's the end of it, right? Cause it's an abstraction and something we use all the time. We can reuse it. Um, one last thing about abstractions when I saved this patch. This abstraction has saved within it. I don't need to save this separately. However, I could, um, if I open this up and then I save this, I can save this as its own object. Right, cause and then I don't need the p. I could just call it, but you have to do some special things to make that work. Um, so that's why some of the time we won't have the P because we've done some things to save it as its own object. If you want to do that, it's a little Ah, too much for me to go into in this class. But if you want to do that, just look on the cycling 74 website or in some of the max forums on how to make your own objects from abstractions. That's the thing you want to look up and you'll find out how to do it and look great. Okay, so Ah, abstractions. Next thing is, let's look at the abstractions that come with Max for live that you already have, so we'll dive into that next. 35. 40 M4LListofAbstrations: Okay, Max. For live abstractions. Here's what I want you to do. Your in Max for live. You've got a patch open. Make sure you're getting the max window here. So we're not in live were in Max. What kind of toggle between the two go up to? Ah. Extras. M for l dot ap I doubt list of abstractions. It's like that. Now, this thing that just came up here is a max patch, right? This is just a cool looking Max patch. Um, and all of these are abstractions that are built into max are that are built into Max were alive. Okay, so let's look at one. Let's look at, um let's do toggle transport. It's pretty transparent. One. I'm gonna click on this, and it's going to show me how to pull up the ah abstraction. So this is See, it looks like an object. M for LDA ap i dot toggle transport. Right. And then there's one inlet. So I'm gonna do is I'm gonna copy this so I unlock it. It's gonna copy it over into my patch. Let's get rid of that per minute. Let's give it all this stuff pasted in what over here. Okay. Sounds in my patch. I'm gonna lock it. Here's my transport up here. I can click this and I can cook it again, and I can control the transport. Right. So this is an object called M for all that ap i dot toggle transport, but it's an abstraction. How do I know it's an abstraction? I can double click on it. Can I get a patch? Right. This is a patch that someone has saved as an object. Um, it's an abstraction object. Ah. And so this is the code. We actually need to get in here and control the transport. Let's dissect this just a little bit. This is where things get kind of complicated, cause we have these weird messages floating around, but I think, um, I can show you the way through it a little bit. Okay, so here's so I'm just gonna walk through this If you don't get everything. Don't worry. Because there's a lot of new objects in here. Um, but, uh, despair with me. It'll be fun. Trust me. Okay. So just go top to bottom. So here's our inlet. Right. That's that inlet. So that's looking for a bang. So when we hit that bang, it sends this message of path live underscore. Set. So the path is kind of like what were asking for in live, right? Like we're What are we asking for? We're asking for the live set. So a global command, um, we might say path track to, you know, or something like that. This in tax is a little bit different, but that's the basic idea. What are we asking for? What kind of device or thing are we asking for? That goes into this object called live Path out of live path. It's out putting. It looks like three things. This is a weird object. Um, we see these all over the place, and they're really useful. So you remember that if there's a space than that space ends, the name of the object and everything else is arguments. So that means that the name of this object must be t right. And it is actually, it's another shorthand kind of thing. T is trigger. So that means I'm gonna give you a bunch of stuff, and I want you to shoot it out like it's a trigger. So what? We're shooting out is three different kinds of things here. So the things that it's sending is B, which means a bang or a button. El is a list. So every time this gets sent something, it sends a bang out its first inlet. A list out its middle one and a list out. It's right outlet, So bang List list B L l trigger. So this is sending in some stuff. This is saying bang list list bang list list bang list List What this is doing. So let's track those three things. So the bang is going to get space is playing. So this is a message. Imagine this as a question. So that's going into an object called Live Object. And it's saying, Is it playing? Is what it's asking, right? So it's saying is live Playing this list is probably some way of asking for ah specifying what we're asking for, like the transport from the same thing with this one. So route is playing. So if this is a yes, it's going to send a one. So our select objects cell is just short shorthand for select just like ah, T is short for Trigger and s a short percent, so select zero. So if it's not playing, it's gonna output a zero here, and it's gonna blame bang, start playing, and that's gonna go to the live object. Same thing is here, So But this one says, is live playing. If this outputs no, then it's going to send a bang to start playing. If this outputs a yes, which would be a one, the select zero object is going to use. So remember how select work Select says, Ah, if it's the thing I'm looking for, go out the left inlet. If not, go out to right outlet. Sorry. Outlet. So this is gonna output a one if it is playing. So that's gonna bang here, and that's gonna bang the message. Stop playing to live object, right? It's weird. Ah, it's It's kind of complicated how this all works. But, um, we're basically asking questions of these live objects like what is a live set? Is it playing and call? Start playing. Call us telling it what to do. Start playing call, stop playing. But we don't really need to even use that because what we can dio is just use this start stop transport and I could just turn it on and off, right? I could also connect to it because it's looking for ones and zeros. A toggle. It's a little easier for me to wrap my head around. I could just do that. Now I've got my play button right there. I can start the whole track just by doing that, right? So check out these list of abstractions, extras and for L. A P i list of abstractions. If you don't have these, you can search around and get it. Sometimes I've seen some installations where you didn't get this list of abstractions installed, but you can find it on like Max for live dot com or some of the other websites, people have posted it all over the place. Ah, here's another one. This is gonna fire the selected clip. Let's grab that one. I want to put it in my patch so that it knows what track I'm on. Let's go. OK, so I'm on this track and this scene is selected, so it should fire that one. Yeah, there it is, right. So I can select clips that way we look at this one. Syntax is actually pretty similar. This one has abstract shins in it, right? So here get selected Seen index. That's an abstraction. And here's another abstraction that's got an abstraction in it when we go there, Does this one? No, that doesn't have one. So here's another abstraction, another abstraction, live path, live path. So some similar stuff. So those are the list of abstractions that come with Max relies. So check those out. Basically quick. Way to save you some time doing a bunch of stuff now with that said, I'm gonna show you a patch here that I made that has a bunch of handy things in it, and we could walk through how they work. 36. 41 M4LPatches: Okay, I'm next. Um, I have a patch that I made for you guys. Um, that I'm gonna give you It will be in the next. Ah, the next segment. I'll have a download link for this. Um, this is Ah, Patch. I may just called controlling live. It's got a whole bunch of stuff in it, so let's just walk through it. There's a lot of new stuff to learn here. Us. We're gonna spend some time on this thing. So here I have just a bunch of different things I set up to control Live? No. Let's talk about two quick little aesthetic things. First. Just the way this patch looks, you'll notice I've got these boxes around here, people asking about that all the time, and I always forget to explain it to him. If you go ah, into your object explorer here. These are called panels. Um, did you do to do? That's fine One. It doesn't have any real good functional purpose. Where is here? This This is panel. And what you can do with panel is ah, It could just be used to, like, you know, outlined stuff show stuff. If you go into the inspector for it. You know, you can change the color of it. Um, you can round the corners, you can do all kinds of goofy stuff, and they're just I just use them to kind of draw boxes around what I'm doing. Um, so that's called a panel. That's what these are. The other thing you might notice is that when I lock it, my patch cables all disappear. Right? And when I unlock it, they're back. The way you do that is you can just click on a patch cable, and then if you go to object, you can do this. Hide, unlock, show, Unlock. This is kind of what we had to work with before they created presentation. View is, we could hide stuff when it was locked. So I just have the patch cables all selected. And then I said, hide on lock eso that when it's locked, you don't see the patch cables. Um, okay, that being said, let's get to the nitty gritty. So I made a quick little patch here for launching a clip. Okay, Now, here's what's important to know. I have this Max for live patch on track three here. Okay, um you can do a lot of stuff to other tracks you can control more than just your own track and the transport. So with this clip, I'm I can say or with this little patch and this is Onley this chunk inclusive. I'm not using any other stuff. And there's no abstraction here. Really? Right. This is all the code it takes, so it's not much. Okay, So if I set this to to I didn't set this to to also I hate this fire button. Then I can launch it. Now, what's happening here is track two. This is one of the goofy things here that you're gonna want to remember always. Ah, the numbering of tracks, according to Max, is zero 123 So when I say track to that's this one, cause this is zero, and this is one, and this is to So they're off by one. From what you would think, because track zero is a thing. Ah, clips. Not so much. Right. So now I'm launching. Whatever is in that clip. Ah, and the way this works is it's a little strange. We have these dollar sign one in dollar sign to whenever you see that in a message. What that means is, um, replaced Dollar sign one with that first number coming in. Replaced dollar sign to with the second number coming in. Right. So what this says is path like, what are we looking at? Live set. So this live set of the visible tracks Ah, we want track number, whatever's in that box and clip slot, whatever's in that box. So I could just replace this dollar sign one with the number two and this dollar signed to with the number two and then I would get the same result. But this lets me change it on the fly. So in order to pull that off, you need this pack object just to compress those two numbers into a single message that this can interpret and put together That's goes into the live path object trigger bang list . And it says, fire fire is the kind of do it button. So launching a clip Ah, here's another one where I'm using an abstraction. This says which track is currently selected. This could be useful for some stuff. So when I click this, it says, Track two is currently selected that's this one, right? 012 If I click over here and then click to update it, Track one is currently selected because there are one right. Ah, and that's using an abstraction. But that's OK. Attractions were great turning on and off the tracks for it. We just looked at that, um, panning control. So here's a fun one. So what I have here is OK, load mess as I believe a new object load mess means load a message. So that means when the patch loads fire off this message first thing, so unloading Shoot this out. So what this says is it's this familiar syntax that we saw over here. Path live set. So this live set track two. So that's like over here where I had the dollar sign one here. I just wrote it in. So track to that's this one. Ah, mixer device. So I'm gonna ask for something in the mixer panning. That's what I'm asking for. So it's sending that message to live path, and it's saying, Give me the panning giver, Give me control of the panning on track to and now here I have to do one funky thing to avoid a feedback loop because what I'm doing here is saying, Ah, control the panning with this dial and also update the panning that's being done over here and that could create a feedback loop. Ah, so that's why there's this extra set one in there is to avoid that. But with that, you can see when I turn the panning on the live dial here, I'm controlling the patting down there. Right? I also set up here a little tempo control thing. Um, just for the fun of it. So what I have here is all the available tempos or divisions of the beat, I should say. So I can set this to 1/4 note and then I have a patch or here I'll open up that patron Just a second. Ah, and then I have a gate and I'm letting that through. So if I open up this gate, here's what's happening. What's happening here is that my panning is going left to right by the quarter. Note. Change that to an eighth note. It's gonna go faster. 16th note starts freaking out fast. Half note will go slower. Right? So now I'm panning on the beat. I basically have a little LFO on there, and that's what I made with this little patch. So I made a sub patch here that is getting those divisions of the beat that I tell it. Phaser is just like a wave, ah, into a sine wave, which is then model modulating the live dial. So I just created an LFO, and that's going out of my panning and into my gate, which is then controlling my left. So when I let it happen, what's interesting about something like this is that I set this up so that the elephant was always going. I didn't want to worry about turning it on and off. So it's always going into the gate, the gates just stopping it. So all I'm doing here is letting it through, which I guess the problem with doing that is that it'll jump when I open this again. The odds of it being right there are low, so it's gonna jump to a new spot. But whatever. Um, you could avoid that by setting up something to turn on and off the ah cycle. That's in there. Okay, here's another one dumb pattern gate. Um this is just like to make some really simple, like eighth note patterns. Ah, in a really silly way. You wouldn't actually want to do this, but, um so let's walk through this one. Uh, what I'm basically gonna do here is I have the same lfo trick, but I'm gonna control the mute button, So load bang, load bangs like load mess. Except it's a bank. So load bang means shoot off a bang first thing, right When you load, just bang out of this so it's gonna bang this. So these two things together kind of our this because this is load message, And then I have the message here. I have a load bang, and I'm gonna hit the message. Right. So what are we doing here? Path live. Set. So this live set track too. That's all I'm asking for is track, too. So that's this one, right? And now I go to live path triggered. Let me show in a patch Cables. Here, you can see what's happening. Property mute. So down here. So this is a little bit different because I'm asking for the property later. Ah, property mute. And then the live observer So this tells me the state of live by just requesting what it's doing right now. And then here I say, Set, mute. Close it up. You can see what I'm doing here. Groups set me water. Set me zero. And that goes into a live object set. Meet one means on C zero means off. Oops. I have that backwards. Zero is off. One is off to Rohit on. So there we go. It's interesting that in the Mableton lingo, this is always called a track activator. But if you call it and ask for it as a property from within live, you ask for it as a mute. It is interesting to me anyway. OK, so here I have set up my ability to grab the mute button on track to um and here I have the LFO. So now I can turn that on. Oh, uh, interesting thing that's happening here, So I turned on the l A phone. It's not happening, right? My mute isn't going by the tempo that I've specified. The reason is this patch is getting the tempo from or get it? Yeah, getting the tempo from Mableton and it doesn't know what until I start the transport. So I start to transport and then it starts working. So now I've got my mute or my truck activator turning on and off by an eighth note. Dubai 16th Note. Don't know if I'll freak it out if I go up really high. Nope, Not really. Well, that updates fast. Coordinate. So now on the quarter note commuting in a muting. Right. So this is you really wouldn't want to do this in a patch. Be better to control to do some kind of fade on the volume. Okay, let's turn it off. That's getting annoying. Speaking of annoying, this one's even more annoying than the last one I put in this little patch. This is just a weird one to show you what you can do. So what I'm doing here is I'm saying path live set tracks zero. So that's saying I'm asking for the current SAT track zero. That's this one. Live path Go. And all I'm doing here is saying set name set, name of the tractor. Hey, or set name of the track toe. Look. Right. So if I click this the name my track is gonna change. Oops. I gotta click this first it changes to Hey, look, a look. A look, a look. And the way I'm doing that is with this patch er that I made called Shout where it's just got a metronome that's selecting the 1st 1 and the 2nd 1 in the 1st 1 Second one first, one second one. And so it's always saying saying, this one and this one and this one and this one than this one, that in this one, that's what that shout patches doing. So I'm just changing the jack name that doesn't probably have any wild performance use at all, but that's why I put it as stupid Max for live tricks. Cool. So I'm gonna give you this patch. Um, there's a couple things you can try out in here. Goof around with it, tear it apart, rip it apart. Ah, whatever you want to do. Um, copy it. Steal it, show it to your friends. I don't care. Um, have fun with it. All right, Well, let's move on to something else. 37. 43 ControlAnyParameter: Okay, let's take one more look at the lives in tax. I made this other patch for you here, Um, where we just look at without an abstraction. What we do to ask something of live. Because what I want to do is show you how you can adapt this pattern. Ah, to get pretty much any device or any parameter that you need to find. So, um, we've walked through this before, but this time I've commented it out a little bit. So what I What we have here is the first things we have this load mess, object. So it's going to send this message out to the live path object first thing. I'm gonna walk through the summer time load mess, and the so the message that it's sending to live path is past life Set eso this live set track zero. So we're asking for something on this first track mixer device. So the device we're asking for is the mixer and the volume parameter. Right? So that's actually not going to do a lot here because it's a MIDI track. Um, so I'm actually gonna change it. Let's set this to an audio track. So that I can see it working a little bit more, right, Because I changed that to a two. Because this is 2012 Right. So, mixer, device volume. We're gonna come back to this message in just a second. So now we have, ah, live past the route to get to the parameter. We want trigger bang bliss list. We've seen this before, parameter value. So this is asking for the value of the parameter that I've specified up here. And then it's saying, set this toggle to it. Um, So this live observer is asking what Live is doing and saying set this toggle to be that same amount. What this one down here is doing is saying, change live to what I'm doing. That's why we can go back and forth, right? I can change it here or here without creating a feedback loop. Right? So that's a little confusing the way that works. But the thing to remember is, this is our sin tax. Teoh, get info and send info from live in a pretty compact way. Now let's go back up to this message because this is where the meat and potatoes is. If We wanted to get control of any device and any parameter on our device. Here's what we need to find mixer device right there. That's where we can tell it whatever we want. Right. So I could change that to say, a different device. I don't have another device on this track, but, um, any device available? As long as you know how to ask for it, you can get it. Um, so and the way to know how to ask for it is you can check the, um, the documentation in Max for live. There's some great documents. If not, you can look online and say, How do I ask for the operator? You know, what does it need to be called stuff like that? Um, whatever you want to ask for and in the parameter is the same deal. Ah, whatever parameter you want, you just got to know how it wants to be asked for it of So just look for in the documentation. What is the name of that parameter? Usually it's gonna be pretty obvious, like volume or panning or whatever, but like, even panning like, is it panning? Oops. Ah, side note. Whenever you change one of these load messes. You have to Ah, double click on it to update it. Okay, so I typed in panning here and now this style is controlling panning. But I was actually legitimately wondering is was it called panning or was it called Pan? So, you know, if I call Pan and reset this, I'm not doing anything, cause Pan is not what panning wants to be called. It needs to be called panning. So you just have to know how to ask for the parameter, your requesting and the device you're requesting, Um, which you can find in the documentation. There are far too many parameters and device devices for me to go through and tell you all of them. Um, I do, however, have a really weird little trick to find any parameter and any device name. Ah, and by name, I mean the name that able to or that Max needs to know to call it. Here's the super weird trick. Oops. Okay, this is gonna get out of Max for a minute. So first thing to do this is, like, totally not recommended, um, by able tin or Max or cycling or anyone This is like my super stupid trick. I've never seen anyone do this. Um, it's probably dangerous. You might hurt yourself. Here's what you do. If you need to find a really weird parameter simplify your set, make it as simple as possible. Like let's even get rid of these tracks for one track on here, I'm gonna go to Instrument. Ah, let's load an analog. Oops, actually, let's not do that, cause then we got a mini track. Let's put on an audio effect. Ah, let's put an amp on it and let's see if we confined. What? How to ask for the gain of the AMP. Okay, here's the trick, man. This is weird. Am I gonna save this patch called? I'm just gonna Go and AMP. Finder or something Saving on my desktop. Now I'm gonna open it. Not enable tin, though, so here it is. Here's my ls. File. What I'm gonna do here, I'm gonna So I just did like a control click on it open with other. What I'm gonna do is open it in a text editor, not Microsoft office. Um do text at it. That'll work. Text Wrangler will be better text Wrangler is a good program for this. Okay, here we go. No, this is what enable Tim file looks like in text. It's a huge bunch of stuff, right? Remember, this is a simple file. All I have on that was that. And it's still, you know, 38 100 lines long or something. Um, this is a common script. This is I think this is called a Jason script. Um, So what I'm gonna do is I'm gonna search this. Ah, fine amp. Oh, it's gonna That was a bad one. Because there's every Its sample is a parameter here, and it's gonna find sample every time. Another thing I could call there blues was set. I'm looking for something I can search for That will get me to that. Let's try searching for blues. Not in there. Um, presence. There we go. Okay, So here's a presence setting. So that alone tells me that if I want to get presence, that's how it wants to be called. And this is often, I think, always case sensitive. So Capital P, maybe it's not case sensitive. I'm actually not sure about that. Um, so now I'm gonna go up a little bit more. Little bit more here, the different parameters. You see trouble trouble base base, and then amp type. So gayness separate. All right, that's okay. So I'm gonna keep going up until I see the name. What? It's calling the amp. Okay device. Chain devices. AMP okay, AMP I D zero It's on track. Zero, I believe, is why that says I d zero so amp is what am needs to be called. That's the name of the device. Now, if I want to find the gain, it's a search for oops to search for gain. Run here. Right here. So gain is the name of that prominent with capital G. If that matters different than volume separate Grabner. So that's how I confined. If you're really in a pinch, I mean, Google is going to be a lot easier than this, but I've found that for some of the weirder devices, Um, that this trick can help you. I just opened up my file in a text editor and then search it for the parameter that I think I'm looking for. And then I find it. So that's that. Not for the faint of heart, right? Um, it's not Ah, easy trick. Okay. Anyway, um, let's move on. We're going to another project 38. 47 Filtergraph: okay. I want to do one more project. Um, this one's gonna be a little more complicated, but I think with the steps we followed on that, you should be able to follow along. There's couple of new things, but that's okay. Ah, Every day you work in Max, you're encountering new things every time you have to learn a couple new objects, um, have to look a couple things up, and that's totally okay. That's just how it works. That's what you're supposed to do. So, um, what we're gonna build here is this is actually a ah patch that I've actually used before. This is like a useful one, and this is one that I I throw together every now and then. Um well, I I have a version of it saved that I could just throw on some something because, um, it it ends up making an effect. That's really cool. Ah, sonically to me. And I haven't been able to find any commercial effect that does it. So, um, you can't just buy a plug in that does this that I know of. So, um, you know, and it's actually, and you know, it's something that I could just make. So it's something I wanted to try, so I made it. And then I like it. Um, so without further ado, So this is an audio effect, and basically, what this is is we're gonna make a filter that, um, is gonna move by random amounts, um, on the beat. So on the beat of the track, it's going Teoh just randomly move the filter. You might say that sounds stupid, but trust me on it, it's actually pretty cool effect. And it's a great way to show you how to do a couple more things. Um, it's going to get the beat from live. So we're gonna have to get our tempo, um, and all that good stuff and ah, we haven't built a filter yet, so we got to show you that. Okay, so I've got my audio and my audio out, right? Nothing should be new here. The first thing I'm gonna show you in this video is ah, Well, actually, let's let's outline the way we've been outlining. Let's make comment. So what I want to do here is first I need to create a filter. Okay, So I need to create a filter, and then I need to create ah, randomize or, let's say, a random number generator. It's pretty easy to do, but it's a important element. And then to connect those together random filter control and then I need to trigger a new random number for the filter on the beat. Be sink trigger. Let's just call it so those are my main elements. So, um, let's do the filter first while we're here. Um, there's a cool you I object down here called filter graph. Look at that. It's like a homemade filter, right? Um, however, there's a lot more settings to filter graph, and you can do actually a ton with this thing. Um, that's open the help file so you can see you can send it a message for what kind of filter you want. You can directly control the gain. The Q cut off frequency. You can actually use this cascade tool to string a whole bunch of them together. I make like, really complicated filters. You know, here's a whole bunch put together Pack and then doing this cascade trick to make this kind of really big, um, multi filter. You can change the way it looks You could do a lot of fun stuff. Um, Now, what I always do with filter graph is I always go to the help file, and I always grab this. Um, this is just my list of stuff, but it's like I could remake that list. But why? You know why I go through the hassle of setting up that list. If I could just copy it out of here. Um, while we're here, I want to show you one other really important thing here. It is all set up in working, right? Notice our flow of audio, right? Like, here's air audio. This is playing an audio file. Um, audio's going down into this object called by quad out into a gain controller. And then to our out to our output, this is another way to show an output. Um, so this is sending it to the speaker. Where does this come in? Right, like no audio goes into our filter, right? That's an important distinction with this. So the filter graph is a case where it doesn't actually do any audio processing. The filter graph is what does the audio processing is? This object called by Quad Tilda. So the bike quad is the filter. That's nothing. That's doing the actual filter. Um, but the bike watt has a ton of parameters. All of this stuff gets put together in a parameter. Basically, this is what you need to be sending by quad all these crazy numbers, right? So instead of formatting all these crazy numbers, we can use a filter graph to put together all of those numbers for us. Right? So these two long story short ah, filter graph and by quad work together a lot, right? This is gonna put together all the numbers and stuff you need for by quad filter graph on its own. Doesn't do very much other than look pretty, right. So we need a bike wad in there to do the actual audio processing. So first thing I'm gonna paste in my ah, cut. There's my list. So now if I say high pass turns into a high pass, that's a low pass. Turns into a low pass, right? Recall. I'm gonna set this on band pass for my trick to work. Well here, um and I need that by quite right. An object called by quad Tilda. There it is to put it over here. Now, the trick is we got a lot of outputs here. We got a lot of inputs. We gotta make sure we send the right one. Um, it's this left one on the on the filter graph, and it goes into I think it's like 1/3 1 Looks like it's the 2nd 1 No coefficient. One question two. How? Actually, no, it kind of looks like the 2nd 1 but I'm not positive. So I'm gonna go back and look. No, it goes into the 1st 1 It goes into the 1st 1 Mother, you go. That's why we have help files and why we love him. Because that goes in the 1st 1 Also, the signal goes into the 1st 1 Now I'm gonna have a stereo signal here, and I can only do one by quite. So if I could do this, that's gonna basically mono some my signal. And then I could do this if I wanted, That will work, But I'm gonna lose all stereo imaging by doing that so instead do the same thing we did with delays. Is gonna make two of these connected to the same filter graph and process my signals separately. Now, I could go straight into my plug out, but I'm gonna grab us, gain slider just because I want to case we're gonna go that way in that way. Then out my 1st 2 we go. Okay, Now, my filters all set up. So remember, this is filter graph is the name of this object. It's a you I object, but it doesn't actually process audio. It needs by quad. It does have a ton of input so we can control it with numbers. Hint, hint. Um, because we're gonna want to do that soon. Right here or no. Right here. Um and it has a lot of different outputs, so we can get information from it. But this is a list of all of its outputs, right? This is just everything. So we're going to send that in to buy quad bike Was gonna do our actual filtering. If we go to our help file, we can actually see the kind of filter by quads doing Ah, it's algorithm is right here to pull 20 filter. If that means stuff to you. Um, here's how it responds. So there's a lot of information in there for you if you want it. Okay, so we've got our field or set up. Right? Um, we can check that off our list. Ah, let's jump to our beat sink trigger. Next. These other two things air. Relatively simple. So next we need to start talking alive. 39. 48 FindingBeats: okay up next. We need to get the beat. Um, now, there's actually a pretty slick way to do this. It's another new object to us called transport. Now, this transport object is not, strictly speaking, a max for live object. Um, transport existen max. It works a little differently. Um, when were inside live. So what? We can dio if I look at the help file here is I like to copy this whole thing out, like all the time. So I'm just gonna do it. Actually, I want all of this except that copy. I can actually delete that one because I'm gonna paste in this hole. Shebang, get rid of these comments. Okay? Now, here's what this transport is doing. Um, this transport is basically talking to the live transport. Um, we've got it set up. So we've seen I think we've seen metro before. Metro is just a metronome, right? It just kicks out Bangs. Ah, and the way we've used Metro in the past is to give it a number as an argument, which is how fast to go in terms of milliseconds. But because we're in Max for live, we can now talk about time, not Onley in milliseconds. We can still use milliseconds if we want. But we can also use these types of do division of the beat four n means 1/4 note. Right. So now I'm saying Metro quarter note. Cool. So when I start this going and I start my transport and go back to live now I see Metro is going and down here it's giving me a bunch of information. These are a weird color and very hard to see. So does go to show fonts. Change those two black so we can see them. Okay, so now we have This is of the comments, always to the to the right in this case. So this is how many bars? So this corresponds up here. This number, right? What beat were on the unit? Just the ticker of the unit. Whatever you wanna call it This woman? I didn't change the color on and I don't remember what that is. Resolution. Number of ticks per beat. Ah, and then here we have our tempo. And here we have our time signature. So we're in for four. So to four show up right there. Okay. Cool. Right. Um this is handy is great, actually. Um, because what weaken dio from this is we can get our quarter note pretty easily. Um, it's easy to get the quarter note. Getting an eighth note is a little bit harder, right? So here's how I could get the quarter note. What I like to do when I'm setting this up is just divide everything out. So this is spitting out 1/4 note, right? It's just spitting out beat. So I need to do it so that into a bang and that's gonna bang on every quarter note piece cake right now. How can we get an eighth note like, let's say I want to do this to an eighth note. Let's just label these while we're doing this quarter note. Eighth note is gonna be twice as fast. So, um, the easiest way would be to go up here and ask it to report faster. Or we could do actually, that won't work now that I say that out loud. And this is why we do this. You know, I sound like I'm describing to you every step that I'm doing, but this is actually how I work on Max I actually talk out loud, like, way more than is healthy for a sane person. Um, here's what I'm gonna do. I'm gonna do some math to get my eighth note here. I'm going to use a special object for this called. I think it's called timer Elapsed time between two events. Okay, so here's what I'm gonna do. Watch this. So this here's what timer does Timer. Basically, it has two inputs, and he sent it a bang here. And then it starts counting when you send it to bang here and stops counting and tells you how many milliseconds was in between. Okay, so all I need is a bang here in here. Take my quarter note to both those. Oops, that's not gonna work. They need to goto one or the other. Okay, so I need to alternate. I need 1/4 note to go here. One corner to go there. What that's gonna tell me is how many milliseconds are in 1/4 note at this tempo. Then what I can do is divide that number by two. And then I know how many milliseconds air in my eighth note. Right? Tricky. But it'll work. So Let's do so. I need to make something that's gonna alternate those two beats. It's gonna send one beat to the left side. One beat to the right side. Easiest way to do that is the countem. But Max are counter at one, so the counter object just counts. It's gonna count Bangs. Let's be sure we give it a bang. I don't directly want to give it a number, but because I've set this to a maximum of one, that's my argument for the counter object is what the maximum number is, So it's gonna count 01010101 So now that's out. Putting zeros and ones. So now I just say, select zero and one in a select object object. I can give it many arguments if I want, and that's just what the output is. So when it matches, zero go, there matches one. Go there. So now it's alternating right. Put that into our timer, stick a number box on our timer and will tell us how many milliseconds are in a beat. There are 500 which, if we're going at quarter, equals 1 20 is what we are. We could figure that out. Right? But let's say we weren't going at quarter goes 1 20 were going at quarter equals when 35 or something. You know, like this math might be a little more different. Difficult. So now that I have that, the eighth note ought to be that half of that is always going to be the eighth note. So now I know how long the eighth note is in milliseconds. But how can I turn that into a consistent pulse? Right. Um, the easiest way would be with a metro object, actually was created Metro object. Set this as the value and give it a start. Oops. So that's to turn that on. And then this is our eighth notes turn on the metro. That should be right. Now, let's make sure this starts the same time. Is that that's connected these two toggles by connecting those two toggles I make sure they both start at the same time is that we stay in sync. Let's turn that off. That should be right. Sometimes it doesn't look perfect because, um, our just the the you I stuff doesn't update fast enough sometimes. So it's hard to tell if these are perfectly in, but they should be. There's no reason they shouldn't be. Once every 500 milliseconds, this one's over 250 milliseconds. Now, I could do more math here and deduce what my 16th note would be if I want, Um, and actually that's gonna be valuable. So let's do that. So our 16th own is just gonna be half of this. So let's take our divide by two. We're gonna need another Metro that goes there. Let's have this one turn that on its well, and then let's make 1/16 note. I'll put it over here and there's our 16th note. Turn everything off and back on to get that cool. Okay, so now I have my divisions of the beat that I'm gonna want to use down here. Now, let's set this up so that we've got something that's is going to give me control to select which one of those I want. Right. So this is actually going to be a switch object, given an argument of three. So what we can do with this switch object as we can. Basically, we have a bunch of inlets and one outlet we can say which inlet is on and off. I'm gonna put my quarter note in the 2nd 1 My eighth note in the 3rd 1 My 16th? No, in the 4th 1 Okay, now I'm going to do in This one is I'm just gonna set up. Ah, menu that will let me select which is which. So this is a fun object that we haven't seen before yet. Ah called you menu. Don't know where it is on here. Radio group here. This you menu, This gives us just one of these lists, right? Kind of like that. So to use this thing, you've got to go to that, inspector. So command, I when you're on it and down here, it'll say menu items. Here they are menu items, and I'm just gonna type in the names of the menu items. So the 1st 1 is Ah, quarter note, comma, eighth note. It's not right. The i g th eighth note. Ah, 16th note. That's a look. Look right to me. Okay, so I've got three items. I can close that now. When I lock it, I click on this. I can select one of those three right It's pretty cool. Now this outputs three different ways. This one item number chosen that's actually the one I want. This one will actually output the text, which to G switch will do nothing. So you want that? Now? We need to know if this needs zero. So let's just test it by grabbing a bang and seeing what we've got. So quarter note. Nothing's coming through. Eighth note. That's my quarter note. Okay, So what that means is that this once 12 or three, this is out putting 012 So how do I fix that? Very simple and logical way plus one. So this is out putting 012 and this is out putting 12 and three. Now everybody's happy. So now 1/4 note this quarter Now, eighth note is a C note. 16th note. 1/16 note. Great. So this is what I'm gonna want actually, to use this all is just for helping me figure stuff out. Ah, and it can hide. Cool. That was a long one. Some of this math gets tricky, but this time or object that can be really useful for figuring some of these stuff out It's not always spot on like you'll see sometimes. Here it's dropping to 4 99 Um, so we might find a better way to do that. But, ah, this was a pretty cool way. Means one millisecond offering on then. So that's not enough to really notice. Um, okay, so now we have our beat sink trigger. That's that. Let's get rid of that. Ah, Now we need a random number generator and random filter control, so let's do that next. 40. 49 ControllingFiltersByTheBeat: all right. The next step is our random number generator. It's a relatively simple Um, um, we need random That's going to generate a random numbers. But we've got one kind of tricky thing here, and that is our range. So what I want to do is I want to have this the center frequency of my filter jump around like this every beat or ever you whichever division of the beat I choose. But I want I want to control the center frequency like that. Like that. So I need to do is I need to find out what's the best range. I don't want my filter to go all the way down here cause it's gonna create a pre big stump . Uh, and I don't really want to go all the way up here because I'm not really gonna hear anything. So I want it from, like, here to here. So let's figure out what our ranges the easiest way is let's take a number. He's gonna be pretty big numbers here. Number box. Now I want to find my center frequency, so I'm just gonna mouse for my outputs. That's the cue. Bandwidth query results filter index gain frequency out. I think that's probably it. Okay, Now I'm gonna move this and just kind of see what I'm looking at here. So let's say on my low to be right around there, So 78 my high to be around here. 9240. Okay, so remember that for a minute. Um, in fact, I'm just gonna write that down right here. 78 to 9240. Okay, Now I can get rid of this number box. I'm not gonna need it anymore. I could also leave. It doesn't really matter. Um, but I'm gonna use it up here. So random is a goofy object in that you can only give it one argument. And the argument is the range, right? So the range is like like if we said random 10 it's going to generate random numbers between ah, one in 10 or zero and nine, right? You can't tell random to generate numbers between 10 and 20 right? It's always zero to whatever you tell it. So we need to do here is we need to figure out what the range of this is. It should be 9240 minus 78. So that's gonna be 9162. So it's set that as our value 9162. So this is going to generate numbers between zero and 909,162 Right? But that's not quite what I want yet, right? I want 78 to 9240. So the simple trick here is to then add all numbers to my low value. Just 78 right here. Right. If I add all values to 78 the result is a random number between 78. Because it can't be lower than 78 and 9240. Because 78 plus 9162 is 9240 Right? Kind of a weird trick, but it works. Okay, let's get rid of that. Okay, Now I'm gonna connect. Why? Let's move this over here. Move this down here. I'm gonna connect my bang here to my random number generator. And there are my lovely streaming random numbers. Set this to 1/4 note so that somewhere in the middle now all I have to do is find where my center frequency goes in. Center frequency goes right there and now we should be in business. Boom. So now on the quarter note, my filter moves around, So this is maybe somewhat interesting. The way this gets interesting is if you put like a beat on this and change it to 1/16 note and starts doing that right, it's living a little too much in the high range, and it's going a little too low. So I'm gonna just this a little bit. I don't want to go that low. Let's maybe boost it up to 100. And I'm gonna lower the high range by lowering this too. 8000 or so? Maybe a little bit more. 7000. That's a little better. So there we have it, right? Everything is working. Random number generators done like someone didn't do is here this thing. So let's hear it. Shall we? Um so this will be here for a second. Ah, let's load in some kind of drum loops. Changes to an eighth note. You know what I think actually would be a kind of cool sound. Here is if we Ah, had a dry going through here, too. So let's actually just duplicate this because we're losing a lot of the base. - That's pretty cool. Um, it's a cool effect. It's not that hard to build. Ah, and I'm gonna give me this patch so you don't have to even build it yourself. But, ah, you should try. You should try to build it yourself, because, um, it'll be good for you to help you learn, Max, If you like this effect, I think it's cool. Um, it produces really fun results that, in fact, that really nobody has. You know, you know, another thing I do sometimes is a just this. Ah, get rid of this. Actually, check this out. Set this right in the middle. This is more of a subtle effects, but it can also be really cool. And I'm gonna have to readjust my range. So this isn't gonna work great, but said this to the Q. So we've got this, like que That's just like flying all over the place. Well, I gotta change my range here, X, That doesn't work. But when you're Q was just like opening and closing based on the beat, it's It's actually really cool effect. It's subtle, but, um, it can feel really nice. Okay, so that's that. Ah, that's our beat. Kwan Ties to random filter is what I call it. Um, the next thing. Ah, the next segment. I'll have, ah, this patch free to download and play around with. 41. 51 ThanksBye: Okay, everyone, that is it. If you are like me and you're thinking like holy crap, man, Like we barely scratched the surface. You're right. We did. But remember what I said the very beginning. I said, the goal here is not to teach you everything there is to learn about Max. I can't possibly do that. Um, in this kind of a class, the goal years for you to know how to think like Max a little bit. And to figure things out, you need to learn how to learn, Max. That's the only way to get comfortable doing it. So check out the websites. Ah, that are devoted to Max. For live devices, you can always open a device that you find online or in ah, the presets that come with able to live. You can open them up, start picking through him. Start understanding what each element does. Um, go to the help file, spend a lot of time, the help files, and you'll start to really get it. Um, hopefully, by this point, you have an understanding of how some objects work, but I don't really even care about that. Like, I don't want you to go through. Just memorize every object. But how? How to get inside kind of the mind of Max and start picking things apart. Being able to dissect. That's our That's the trick that I want you to have. Now I'm gonna leave you with one special thing here. This is Ah, Patch I I cooked up really quick. Um, to be silly, but it is kind of nice sometimes, actually. Um I'm not going to tell you how this patchworks I'm gonna give it to you in the next ah little segment Here, you'll have this patch. This is my little artificial intelligence patch. Um, where I'm telling live to do a whole bunch of stuff here. So basically how this works as I'm gonna click on Go and it's going to control and I've thrown Ah! 5 10 15 20 random clips in here. I didn't even really listen to these. I just randomly through these in here and what this patch is going to do this. Come, decide when to launch clips. It's going to control the mixer. Um, it's going to start getting weird with our ah track names because I think it's funny and are panning are solos. It's Ah, it's gonna just start doing some really weird stuff. Um, but it's completely on its own. I'm gonna hit. Go and then I'm gonna walk away. Right. Um, so, uh, I'm gonna give you this patch, and I want you to dissect it. And I want you to figure out what it's doing and how it's doing it. How it's controlling all of these elements. Um, if you have questions about this patch, throw him up in the discussion on ah class page, and I'll be happy to chime in and tell you stuff, but try to figure it out on your own. Um, let me know. Any questions you have, though it you'll be surprised at how simple it is. Ah, okay, so with that, I'm gonna leave you with this. I'm going to start this running and just listen to it for a few minutes and you can see all of the things that it's doing. You'll be able to see all the things that it's doing once I launch it. And again, this is completely random. This is Max thinking on its own. This is like, ah, artificial intelligent experiment. Um, it's deciding when to launch, when to turn up the volume down the volume of just the panic, everything. It's deciding everything. So I'm not gonna touch it. Sometimes this is really interesting. Sometimes it's really terrible. We'll just see what happens. So I started recording and I'm gonna launch it. Off we go. 42. SkillshareFinalLectureV2: Hey, everyone want to learn more about what I'm up to? You can sign up for my email list here, and if you do that, I'll let you know about when new courses are released and when I make additions or changes to courses you're already enrolled in. Also check out on this site. I post a lot of stuff there and I check into it every day. So please come hang out with me and one of those two places or both, and we'll see you there.