 It's time for the show. Thanks for stopping by, everyone. I got into that music a little bit. Welcome. This is John Park's workshop right here. We're in it, and we are in it. So thanks for stopping by over in our chats. We've got our YouTube chat up and running, as well as our Discord. It looks like that right there. If you want to join in on this action, look how much, lots and lots of action there, you can head on over to adafru.it slash discord. That's our URL shortener. You'll get an instant invite. You'll click buttons. Discord will pop up or a website. It's always confusing to me. But somehow, through all of that, you will end up a member just for asking. You will become a member of this Discord, and you can head over to the live broadcast chat channel to hang out with the people right here that you see. There's Andy Calloway. There's Johnny Bergdahl. Hello, DJ Devon3, Paul Cutler, Noe. Hey, it's Noe Ruiz. Thanks for stopping by, Noe. Andy Calloway is in the house as well as C Grover. So thanks, everyone, and anyone whose name I missed. Thank you, too. Pardon me. So what have we got today? I've got some fun stuff. We've got a little couple of cool upgrades and updates on our computer perfection synthesizer project. Hey, Beatograph of Dalhagen and Dale Echols over on our YouTube. Thanks for stopping by. What else? I've got a coupon code for you. If you wanna save some money in the Adafruit store, buying some stuff, I've got a 10% off. Coupon, I'll share with you in a bit. What else? I've got a recap of my product pick of the week. I've got a Circuit Python Parsec that I think is a really helpful and useful one that I'd like to share. I've got a bit of a retro tech thing, a little throwback thing I wanted to show and tell. What else? Is that it? I feel like there's one other thing that I'm missing, but I guess we'll find out when we get there. So Jay Castaneda asks, who doesn't like coupons? I don't know who doesn't like coupons. There's today's. Look, that drop shadow looks really neat on my shirt. It's just floating out in front of me. It's tinted. Tinted is your coupon code today. So if you wanna get 10% off in the Adafruit store, just type that in in the checkout line there. The online store has all kinds of great stuff. Thousands of products, in fact. I'm gonna open up my, where'd my browser window go? Let me add a tab to that. Whoops, not that one. Stand by. Here we go. This, this right here. That's the Adafruit store. Just go to afruit.com and you're in the store. Hello, Richard Doss. Nice to see you. Thanks for stopping by in the chat. And let us know if you have any thoughts, questions, things like that. I check the chat. I try to check it as much as possible, especially let me know if my audio drops off or something weird like that. But, back to the topic at hand. Here's some new products right here. We've got this little mini I-square C gamepad with C-Saw. That gives you a bunch of I-O for adding some gamepad-like functions to a project. I'm gonna do something with that, I'm sure. We have a revision of one of our TFTs. This 240 by 135, 1.14 inch display. There's some new key caps in the house. Four chocks, these. These are the little chalk key switches right here. Pull it off of the breakout. You can see there, that's actually one that went out of stock. But these look really cool. These white ones that you see there, they have, I think, the same glow-through material underneath, they're painted over, so they're not gonna glow. But I've discovered, and I'm gonna do some more research on this. I've discovered you can scratch off a little bit of that paint or maybe even acetone it off or laser etch it, mill it off, all depends on what tools you wanna use and get some nice glow-through. So those are just some of the new products. If you want, click on products, view all next to new products and you will see all the new products listed here and there's lots, lots more. If you want to save some money, just go ahead and throw some stuff in your cart and on the way out, type in that coupon code that's mysteriously floating right there. It's not really a mystery, is it? Tinted, that's gonna get you 10% off today. Let's see, other stuff. I have this show on Tuesdays, speaking of products. I have that product pick of the week show. It happens right at this time, but on Tuesdays, it's at one o'clock Pacific, four o'clock Eastern time. And on that show, I like to show you a new product or sometimes an oldie but goodie. Give you a little bit of a demo, some hands-on stuff, show you some code, so your little project build I've done with this. One of my favorite things, by the way, each week is to get to play with some new products and come up with a demonstration of it, solder together some stuff or breadboard some stuff together, write a little bit of code. It's a lot of fun and keeps me on my toes. Here was this week, so I'll give you a little one-minute recap of this one. It was, in fact, those little breakout boards for the Chalk key switches. Take it away, me. The Chalk Neo Key Breakout with Socket Built In. This is a tiny little PCB that you can use to add a Chalk key switch. There is a Neopixel underneath that shines up and through it. I'm ready to wire that up for cathode and anode for the switch so you can use that in either pull up or pull down configurations. Those have a diode, so you can make a diode matrix if you want using our keypad library in Circuit Python. Power and ground for the Neopixel as well as the in and then on the bottom of the board to be out so you can wire up a chain of Neopixels with these. I've quickly breadboarded and prototyped something here where I have Neopixels. So you can see I've got color changing happening when I press the switches. And these are going through a QtiePie to act as gamepad buttons essentially on my steam deck over here. It is the Neo Key Chalk Socketed Breakout. That's right, that was that. That was the product pick of the week. So I'll be doing another one this coming Tuesday. So be sure to tune back in for that. I kind of buried the lead because not only do I show you a new product, you usually get around 50% off discount on up to 10 of them. If it's an Adafruit product, we have the ability to drop down to 50% for that show usually. For some other stuff, third party stuff, we don't have the kind of margins for that usually. But on Adafruit products, half off, just during the show, there's no coupon code. You just simply buy it during the show and it is half prices listed at that half off price right there in the product page. Hey, BlitzCityDIY. We've got some more people joining us over in the chat. There's Liz, hello, Liz. Did everyone see the cool synthesizer Liz is working on? She showed it on show and tell last night. That thing looks amazing. It uses, I think, five of the A&O rotary encoders, the click wheels. So even if it had no synthesizer in it, it would just be a really cool fidget toy to spin and click those wheels. But it does way more than that. So thanks for showing that last night, Liz. We're excited to see that project come to fruition and a learn guide will come out of it, I'm sure. Who was thinking of Crutons? Oh, yeah, we like coupons and I like Crutons. How'd you know that? Okay, let's now dive into a new product. The Circuit Python tip for you. Here's the Circuit Python Parsec. Yes, Circuit Python. Okay, let me just change windows here. I'm gonna add a window in a second so remind me if I don't. Here we go. What I wanted to talk about today in the Circuit Python Parsec is how to download the latest build of Circuit Python up to the minute build using our Amazon S3 site. So why do you wanna do this, first of all? If you take a look at this, Synth.io. Synth.io has been getting a lot of work. Jepler's been doing a lot of work on it so he's updating it and he's getting a merge of it into Circuit Python pretty frequently but that takes a while to find its way into the big releases that you find here on the downloads page of CircuitPython.org. So if I go to this downloads page and I do Feather RP2040, I'm gonna find the 8.1.0 and even a 8.2.0 beta zero but if I look back at this one from Jepler, this is newer than those. So what I can do is scroll down a little further to this absolute newest section and it says I can click on this to browse S3, that's our Amazon S3 storage, and this might look a little bit weird to people who aren't used to old fashioned internet. So this is a directory structure and if I go to the language I wanna use, I'm gonna use English US, this ENUS, I'll click on that and now I get a list of all of these latest releases. Oh, in fact, this beta is new enough that I could have gotten it from there but until maybe an hour ago, the one right below it, that was the newest one. So I'm gonna go ahead and grab that one, let's say I'm not grabbing the beta but I'll grab one of those, any of those, grab a UF2 file and then I can go to my finder and grab from the downloads folder, you'll see right here, here's the UF2. I can go ahead and put this into boot select mode. Oh, I missed the button, tiny button. And that's gonna show up now as the boot drive, RP2, now can drag and drop that UF2 that I downloaded onto there, it'll take a minute to copy over and then when it restarts, it'll be running CircuitPython and it'll be running the version I want. You can go to the release notes of the different CircuitPythons to find out which features and which PRs have been merged into them but this is a really great way to grab up to the minute or pretty close to it, merges of CircuitPython to get the latest features and one of the reasons I'm doing this is things like the LFO and other SynthIO features that I want just aren't in those big releases that take a little while to get out there. So if you wanna grab that really new stuff, head to the download page and then find this link right here, Browse S3 and that'll take you right to the language page to grab the CircuitPython build that you want and that is your CircuitPython Parsec. Yes, CircuitPython. Excuse me. By the way, there was a link from DJ Devin 3 here that you can check out over in the Discord and this is the absolute latest NightlyBuilds, which is a page he says is worth bookmarking there and you can see that. That's at Amazon AWS and that's our latest builds right here. You can, from this page, find any of the boards, any of the hundreds of boards that run CircuitPython, you'll find the builds there. So I went through the main page of the download section of CircuitPython.org and I knew which board I wanted to find there, but you can just scroll through here and grab what you need. Let's say you're putting this on a QtPython ESP32-S2, just click there, click on the language you want and there you'll find your... Oh, I'm not showing you the page. Sorry. Sorry. There we go. This is all of the different boards here that have that NightlyBuild and then you can go and find a board such as this QtPython. Go to the language you want and then grab the latest. Well, that's good. I learned something here that the beta is now... should now have all that SynthIO stuff I want, I think. And you can go to the release notes for that build in GitHub to find out more about it. All right. So let's see. Katrina LaFace is sitting on Facebook Live and no one answering. Yeah, so we don't... or I don't have enough windows open and attention to look at every chat that we have. So good places to go are the YouTube chat or our Discord. You go to adafruit.it slash Discord. That's this window I had up here. Look for that live broadcast chat channel. People hang out here all the time anyway. There's a lot of great channels if you want to go and get help on a particular type of project. If you want to participate in development of CircuitPython, if you want to share pictures of your pets, a whole bunch of places there that you can go and hang out. And that is where you'll find the chat in this live broadcast chat channel for Facebook, LinkedIn, Live, Periscope, if that's still around, Twitch, and a few others. All right. So next up, I wanted to do a little bit of a retro tech segment because I was cleaning out some boxes and bumped into a pretty neat artifact from the past, from about 2016, about 13 years ago or so. Let me give you a look at this right here. And I'll just adjust that. Focus a little bit. There we go. So this is something called the Make Controller. This is a microcontroller development board that was made by this company called Making Things, who I don't think are around anymore. And this was in collaboration with Make Magazine. Make Magazine was early in identifying that there were these hobbyist desires to make things that involved microcontrollers and a microcontroller board that was approachable and had a lot of easy-to-connect features would be useful for makers. You can see here this is based on a SAM-7, an Atmel. This one's the 1891 SAM-7 X256 ARM processor. And on its own, you can see it's got a bazillion breakouts there, a lot of pins broken out. But what do you connect them to? So before I show you that, actually, I'll show you an old blog post from Make Magazine with someone you may know, our very good friend, Phil Turone, who was the editor, online editor for Make Magazine. Let me see if it'll let me close some of these. Sure, I'll let your cookies in. So this was a blog post from May 11th, 2006. And this talks about Make Magazine approaching making things to create the Make Controller, and then they were offering it in the Make Store, as well as at Maker Fairs. And this thing right here that you see below, that's really what caught my eye. I saw this at a Maker Faire and picked it up there, and I got it. So if you take a look right here, this is the application board. So this thing has everything on it. Look at how many different types of connectors this thing has. Let me refocus a little bit there. Okay. So you can see here, these are the headers where the Make Controller itself plonked in. I'll leave that off. But once that was in there, you now had broken out the Make for motor controllers, for servo controllers, an ethernet interface. Here was USB, I think, for power and maybe data, I think for programming it. And on and on, there were a lot of GPIO inputs for this thing. I can't remember if it had, I think it had analog inputs. Here is a, I don't know what this IDC connector is for. If you do a little bit of searching around on Google, you will find this site was archived by archive.org. It's not available anymore, but this was the makingthings.com product page for the Make Controller kit. You can see it wasn't cheap. It was $149, but that was both the microcontroller and the big application board, big breakout board. Here's some of the features of this thing. It had eight analog inputs with 10-bit resolution, eight high-current digital outputs. You could drive a bunch of motors right off of this thing, steppers, DC motors. There were four servo controllers. There was a pretty neat feature on this, which is this dip switch row down here. The idea behind this was that you could code functionality into this thing that a user who wasn't going to go and change the actual code running on it could configure different settings from this little dip switch set, which is really cool. One of the applications on it that you could put on pretty easily or maybe it shipped with it allowed you to configure the relationship between some of those pins and some of those motor drivers. So without someone knowing how to code, they could change which input pins would drive which motors and how. It had a JTAG port, it had a CAN interface for networking these things. And then you can see from the section on the right there, it was configured to run with a bunch of, again, giving the user control over some software that they would be more familiar with, Max MSP Flash Processing and then .NET, C-Sharp, CC++, Python Java. And you could interface with it using OSC, which is sort of a modern-day attempt at updating the MIDI protocol. It's actually an entirely different protocol, but it's trying to do similar things that MIDI does, very powerful. This was, I think, intended to be programmed in C using an ARM or an Atmel environment of some kind. I never coded for it. I think maybe I tried something once and the tool chain was a bear. And this was coming out right pretty much when Arduino was coming out. So I think we all know who won that battle, but this is a really cool board. Actually, I'm noticing in the chat, oh, no, no, okay, yeah, sorry, I got distracted by the chat, which is not talking about this board. Anyway, that is my little flash from the past here of this funky little make controller board. The projects that were done with it and are still documented out there are pretty minimal, but one of them that was, I think, pretty inspirational to a lot of makers was this one here from Instructables, and this was how to make a animatronic shoulder-mounted helmet. It was for a Stargate cosplay. And I believe this showed using one of the stock pieces of code that was on there and a particular configuration of dip switches to enable all of the motions that he wanted. So kind of a cool project there on its own, and this was one of the few that I remember seeing any projects done for the make controller that were out there in sort of usual maker circles. So that is my little retro tech segment, and if you have ever used this thing or seen it before, let us know in the chat. Yeah, Todd Bott says, before Arduino, really. Yeah, if you look in the comments on that blog post that Phil did, someone says, yeah, this thing's kind of hard to use. You might want to check out this other thing called Arduino, which is great. Let's see, who said that? Yeah, Steve Cooley here says, if you want to get your feet wet with microprocessors, you can go grab an Arduino board. It lists a couple places to get them, Arduino CC and SparkFun. And yeah, this was the dawn of this microcontroller era, so. I think that is it. All right, so let's see. Next up, there is a little bit of a demo I wanted to do to talk about one of the SynthIO features that's new and that I've started implementing in the computer perfection synth. But before I do that, I actually wanted to talk about this update that I did just for lighting. So I'm going to grab the computer perfection here. For those of you who don't know, this was a toy from around what, 1981 or something? I can't remember exactly. Designed by Ralph Baer, it was a sort of puzzle game, memory kind of logic puzzle game. And I've been updating it to put a synthesizer inside of it, and I'm reusing all of these buttons and switches and things. But one of the features in the original was there was one LED, a 5mm red LED underneath each of these shapes. And due to the design of the circuit board, it was going to be really difficult to use those just because they essentially share the same lines as the inputs. And the microcontroller, which I have. Oh, it's not here. The little microcontroller, 4-bit microcontroller that I pulled out of that board essentially toggled its pins between an input and an output state really quickly. I don't want to deal with that at all. So what I decided to do was insert some neopixels into here. Now, one of the cool things about this is the red plastic. I'm going to change my cameras around here for a second. The red plastic tinting, which, by the way, is where we get our 10% off coupon code from today. The red plastic tinting means we get a really beautiful look. We also are not going to see any colors other than red coming out of this thing. So let me do a little focus and a little exposure and then I'll share this camera. Okay, so check this out. Here's the computer perfection. So I've got a USB cable. There's a Metro M7 in here. I've got a speaker in there. I've got an amplifier. I'm going to turn it on now. You should see a nice little startup sequence here of some LEDs starting up. And those are actually pretty close to where the originals were. The originals were just mounted underneath the circles, but I found a really nice thin strip of neopixels I could wrap inside of here. And it's dense enough that I can do things like that. I have a single LED with two surrounding it that I don't light all the time. So if I start lighting a bunch of these and make a bit of a racket, you'll see that I'm able to do like a little LED pulse kind of thing, which is pretty neat. So I wanted to pull this apart for you now that you've seen it run. And I'll show you how I've got those LEDs mounted in there. They're actually they're not even mounted. They just kind of fit perfectly, but I may use a little bit of adhesive to keep them secured for sure. Part of what I had to do was mapping which LEDs were positioned where in my code and let's see, can I switch to pull that camera out of there? Okay. So the mapping of LEDs to the positioning on here would change if I adjust the ring here. So I want to try to be a little bit careful to keep that position and I just want to lower this light because it is super, super bright. That's as dim as it wants to go. Okay. Wow, that's bright. Okay. So let's pull this apart again. One of the things that I'm really loving about this toy is game is how accessible the guts are. You just pull these two screws out and just tip this up. So here you can see where you can see it in there. This is the space right here. I'm going to zoom in. I'll type focus on the neopixels. So this is the circuit board that I'm reusing all the buttons from and I have my ribbon cable connecting to my controller. Right in this space is a little circle in there. I'll go ahead and disconnect things so you can see that. So I've got my USB cable. I think I can maybe disconnect my amplifier there. So you can see these are three additional wires that are on my little screw shield here that are my neopixel line. So this is a the strip I'll show you in a second comes with three wires on it. So ground, power and a data line. I'm running these off a 3 volt and that's working fine. It also keeps the power the same as the logic. And now if I pull this board out of here magnetic screwdriver since I've unscrewed and re-screwed these screws multiple times I'm trying to be very careful not to strip the plastic holes that the plastic is sort of tapped probably by the original insertion of the screws during manufacture so I'm always trying to be really careful when I put these in that I catch that threading and I'm not widening those holes. It's a little tricky to get at with my microcontroller there. Okay so I'll leave this trying to leave this upside down so you can see oh it's going to come out okay I'll get to re-insert that there we go. So there's this little sort of overkill the length of it is about two and a half times what I need in there but this is this nice little LED strip that just happened to fit in a space a really neat space right here I'm able to run wires out along the same places that the speaker wire of the original toy ran out of and those little teeny I think these are the four millimeter NeoPixel strip these work really well for this use so I'm going to put that back and there I'll have to align that a little better I think later but I'm going to put this back together so we can take a listen and a little bit to the demo of the LFO feature that I'm starting to work with so let me know if you have any questions about the NeoPixel stuff and I'll show you if someone wants to find it and put a link in the chat that would be great but I'll come over there in a minute and show you that strip it does have an adhesive on the backside which isn't useful for the arrangement that I'm using but depending on depending on your needs that might be a good way to fix that to your project you know what I'll leave those two screws out that's fine for the demo we're going to do and now I just want to reconnect my amp and we'll reconnect USB I may in the final project do a little USB breakout so you can plug in any cable you want down at the bottom of the device but for now I just ran it out of the battery hole in the bottom okay and I will put these two screws in here otherwise the whole gizmo will fly open when I press any of the upper buttons okay so we will come back to that to take a listen to it but that is that is how I've added LEDs to it and then in the meantime first of all I just want to adjust a light over here that's right in my face and usually lives a little higher so next thing I want to do is give you another demo I've done some other demos I did one with a little keyboard a couple weeks ago but I just want to give you a demo of a low frequency oscillator being used as a modulation source so I've got a small Eurorack case here with two modules in it I'm going to un-patch it and I will go ahead and turn this on and I'll pick a synth voice here the two modules are a sound source a voice sometimes that's called this one on the left here this is a macro oscillator which means it's a digital oscillator that can be a lot of different synth algorithms and synth types I'm going to use probably just this is a mix between a triangle and a square or PWM wave so with that this thing will just make noise on its own if I plug this in it's just going to start making noise actually I've got to do one thing that it will actually make noise and not there not require me to ping it okay so this should just make noise if I plug it in sound maybe music but it's going to oscillate at an audible frequency we're going to hear it making some sound this module on the right I'm using as a low frequency oscillator so they're actually very very similar things but where this is going from 20 to 20,000 Hz you know audible range stuff depending on your age and the state of your ears this is slow stuff this can go anywhere from I think like a 2 minute or maybe a 20 minute time you know peak to peak wave up to actually this one can go to audible rates but we're going to keep it slow because what we want to do is have it be a virtual knob turner for us so a low frequency oscillator that's the thing that's been added to I want to talk about the way I want to use it is as a modulator which means it can just wiggle a knob for me automatically at a fixed rate so let me demonstrate that I'm going to take a little speaker here I will check in to see that you can hear it once I get this set up and I'll plug it in and we'll listen to it briefly and then we might unplug it because it'll get annoying while I talk about the LFO setup low frequency oscillator setup ok so this is our synth voice and you can see I can change this character of is it mostly that triangle wave or is it mostly that square wave this is a similar type of related control here we can also change things like the pitch but I'm going to I'll probably just leave that where it is but you can see here the pitch have it quantized to hitting semitones so that's the synth voice the oscillator that's at audible frequency and then this thing over here you can see this sort of slowly pulsing LED here let me check my focus a little better this is the rate that this thing is oscillating so it's got this so rate that it is a voltage is coming out of this thing from these outputs here I can use that voltage to control one of the knobs over here so I'm going to take let's listen to it again and now I'm going to take how about actually before I do it let's look at it so I brought some patch cables to let me output to a little oscilloscope so we can see the thing and then still pass that same voltage over to the oscillator so let's plug that in there let's turn this on and I might try for a second here to adjust the this little scope offset drop this down ok that's not bad actually we can kind of see the whole wave in there ok so if I set that there I can now pass that same signal I'll just leave this here but then I'm going to grab that same wave that's coming out of there use a longer cable so I'm just stacking those on top of each other right there and now I'm going to take that and I'm going to plug that into the timbre let's listen to it without and then I'll plug that into the timbre so you can see it's wiggling that knob back and forth for me if I slow it down and oh yeah and tell me if you can hear that one second and I can keep an eye on the chat over there but I think let me know if you need that to be louder and I'm going to raise the pitch so it's easier in here too ok leave it alone now I'm going to plug it into this other knob the color now in this case I don't need the negative half of that wave so I'm going to use a unipolar so I'm just getting the positive voltage down to zero positive voltage down to zero and again I can change this rate now we can also change the shape of this so I have essentially a sine wave here but we can change the shape of it into something more like a triangle taking that sine and turning into something like a triangle we can also sort of change the slew or the shape of the curve so here we go so this is going to go more triangular we can go and sort of slew this one way or another or change the slope to go the opposite way and one interesting thing about this LFO as a modulator is it actually doesn't even need to be a continuous curve you can do something with a stepped output which is almost like pressing two different voltages or values so if I switch this to be a high value you can see I just have this little square wave so now we're not interpolating between those values this is actually something you can't really do with a knob yourself because you always have to work your way from one point to another this just jumps automatically directly between and it can be used for pitch things as well or timbre right I think that's enough of that so let me just check I'm going to check the discord actually from right here to see if you have any questions let's see a lot of broadcast chat okay one question was djdevan3 asked are there basic examples for synthio those are in the works there are some gist out there but there will be a guide for sure and I think Todd Bott may do a little synthio cook book I'm hoping he will because he's been writing great examples tieethas are there any knobs that wiggle for real as a result of inputs like the motorized slide potential yeah in fact there's a synthesizer that came out kind of just in the last six months or so and I can't remember the manufacturer but there's a synth that has motorized knobs all of them which means when you pick presets all the knobs go to exactly where the preset had them it's incredible I think it's incredibly expensive just because the number of parts and motor drivers in there so yeah just like motorized faders there are motorized potentiometers okay so that is the basics of an LFO now what's happening in synthio is that Jeff created a a way to create an LFO inside of synthio so in synthio you can make an LFO you can tell it what wave shape to use just like I showed we can do something like a triangle here we can do kind of a wacky wave we can use sort of wavetable types of synths we could use pure noise which would be a little wacky but we get to pick the shape of that LFO we also get to pick the range of it so that's something actually I don't have a way to show you it on here easily but I was using one of these knobs as an attenuator to say you know what even though this is outputting I think negative 5 to positive 5 volts or something like that I want to squish that range down so we can do that in synthio we can say okay the bottom and the top of my my low frequency oscillator is going to be x and y so as you set that it will attenuate the impact of it so with something like this we're going about a note or so about a semitone if I change the amount of attenuation I can say that same curve is being used for even more of a change down to nothing almost nothing it's not perfect so we can set the rate of the LFO and then we can attach it to something so just like I use this patch cable right here to say I'm going to output this low frequency oscillation and I'm going to point it into the pitch or the frequency modulation, the timbre, the color we can do that inside of synthio so we can say okay I want the pitch to be wiggling up and down I want the mix between wave forms sort of like what these things are doing here when I change the timbre I'm going between a couple of different wave shapes so you can see we're kind of shifting between two different types of tones there or harmonics that we get from the shape of the actual audible oscillator with just the same old LFO we create that LFO and then we say what's it going to plug into so let me demonstrate that now on my computer perfection over here because thanks to that implementation and some code examples from Todd so implementation by Jepler and I think Mark Gambler is now contributing to some of that code we can take a synthio object running in circuit python and this is on my Metro M7 and we can assign, create an LFO and assign it to some parameter and even change its frequency or the rate of that oscillation so I'll plug this in see my little lights light up and what I've got going on right now what I'm going to do is I'm going to play a note or maybe two notes and I've got it set to hold mode so these will just hold and now I've reassigned this button for something else last week I don't want it for that anymore I wanted it for changing the rate of the LFO so what we'll get to do is we'll hear the waveform changing just like that last example the type of character of the sound color of the sound will be changing at a certain rate I can tap this little set button to increase it and increase it as much as I can I can long hold it to decrease so that's how I'm using this one button a long press decreases the rate a short press increases the rate so here we go, here's some sounds so that low frequency oscillator is wiggling that fast and it is shifting between two types of waveform it's a little weird at the top end of its rate, not sure why yet now long hold it and I'll slow it down slow, we get this nice build can change the waveforms that it's using speed that up again now it's a much faster LFO just kind of changing the character of that sound almost filter like just because of the two waveforms that I'm going between some funny behavior at the top of its speed slow it back down and I'll release all those at once and that'll work on or held notes so I can speed that back up so it's obvious you can see my LEDs are all screwed up by the way remember I said if I unplug them I'll get them out of order they're definitely out of order so I can improve that get a faster LFO this button still gives me a bass octave sounds nice that gives me kind of triplets the LFO at that top of its range which is fun but I don't know why it's doing it but hopefully you can hear that that was just coming out of this little speaker right here and the I2S amplifier that I have that you saw me plugging in earlier so it's not going through my little Bluetooth thing or any other amplification that's just that nice little enclosed speaker it sounds pretty good let's see good okay so I think that covers the demo I wanted to show let me go ahead and bring this over to the computer here and I can show you the code that I've got running on there over here for a moment plug this in do the light show pretty good there sorry about that glare that's a little better let's actually go to this view here yeah that one I'm just going to make my circuit python window a bit bigger hold on one second let me shape this okay here we go so I'm going to open let's see is that the right code nope that's from a different microcontroller unplug no I unplugged that right oh I didn't okay dangerous having two circuit python devices plugging in at the same time on your computer very confused okay yes this is it has not been optimized there may be a bunch of mess in here but the key things that I want to show you are I'm importing synth IO that kind of takes care of everything I need for the synth stuff also Jeff sorry if you're watching I am not using frequencies yet I'm kind of still using the midi notes and I'm not sure if we want to be switching away from that but I have a list of notes here that I've also horrifyingly just made it do the math of I wanted to drop an octave so that's my note list that's the I think it's a Lydian scale of what I'm playing on the 10 keys plus a couple extra notes so the key thing for this example here and I'm sorry I'm going to have to I think I'm going to scale down the text just a little bit so more of it fits hopefully you can still read that so the key things that are going on here that are new I've got my synth that I'm setting up I have four waveforms that are my audible waveforms that I'm using and in one case I'm reusing that waveform for my LFO so I've got a sine wave I've got a saw shaped wave which is the slope with a instantaneous drop looks like a sawtooth I've got weird wave which is more of a wave table synth just some points in a table that have been set up that was something from one of Todd's examples and I've got a noise and I can't remember I think I'm mixing noise with one of those the LFO you can see is created here so I'm setting a value as a variable called LFO rate and that is initially set to four which is four hertz and then I'm creating an LFO object by saying LFO1 you can zoom in a little more LFO1 equals synthio.lfo then I tell it a rate which is my LFO rate variable from before so four hertz and then the shape of the LFO in this case it's the sine wave then I append this to the LFO's objects of the synth itself so I just have one but you can use more than one again I think Todd had an example of using a pair of them for cross modulation of the ring modulator so it sounds bonkers and really cool then in my main code let me find my mix where'd it go oh before I go down to that yeah so you can see here initially I set my wave form to be the saw and a wave mix of zero so that audible sound we're hearing is a saw wave if we look way down at the bottom I have if wave set is zero and that's what this mode switch switch is here then I'm going to do a linear interpolation between a sine wave and that weird wave and instead of just telling it how much to mix between the two which is what that knob that I was using that timbre timbre knob or the color knob we're using tell it which mix I want between the two waves I'm saying use whatever the value is of my LFO after I have attenuated the LFO into the range that I want so I'm taking a negative one to one just the sort of full values of the LFO peak to peak and I'm actually changing that to be a zero to one just because the mix parameter doesn't go negative it just wants to zero to one so we do this little linear interpolation between those and then while it's playing it's going to run at initially four hertz so that knob is just going back and forth at that four hertz rate if you look at my mod buttons this one right here and sorry pardon me for the code that's commented out here so mod buttons are these two say modifier buttons so the set button is button zero if I press button zero we are checking to see the current time versus the last time it was pressed so that I can calculate if it's a long press or a short press I was trying to find a neater way to do that I thought maybe in keypad we have that but actually that's in the debouncer code there's like a long press that's just kind of built into it but I had to do the logic here of checking the current time versus the last time if that mod button is released and the press was a short press then my LFO rate becomes my LFO rate increased by 0.25 so I'm multiplying it by 1.25 and that's how I'm just kind of stepping up I'm not doing a smooth thing here clearly but I'm just stepping up some rates that seemed good to me and then my LFO one dot rate becomes that number if it is a long press right here then the LFO rate is going to be divided by a quarter so LFO rate times 0.25 I'm not sure if I did that right it seems to work but if you have suggestions particularly Jeppler on a better way to use one button to sort of cycle rates there by the way was a good point that DJ Devon 3 made which is since these low frequency oscillators that are modulating between these two sort of characters of wave sounds are not in any particular time this is not a sequencer drum machine I don't have a beat I can play it at whatever rate I want I actually will end up playing it at a rate that makes sense with that LFO it's something I found if you have a modulator that's running at a constant rate you'll then tend to play a note and let it wobble four times and then play a different note so you can build your tempo of playing around the LFOs and also as DJ Devon 3 was saying if you have your LFOs running quite slow then it's really suited to ambient music in this case is this sort of sci-fi pad so by the way you'll see I can't press these screws and those other two screws so the PCB is a little wiggly and far away so that is the LFO object this is not what I'm showing here is not a tutorial on the right way to code it it is just an example of how it's sort of plugged into the system we will write some proper guides on synth.io and I think Todd agreed that he'll be doing the LFO cookbook which will be great look forward to that I'll be referencing it all the time I'm sure and I'm just going to check the chat here to see if there's any other questions that people have here by the way are some different LFO graphs that Jepler did here for you can adjust that so you can adjust the phase offset so it's not a constant phase you can adjust the scale of it so that's that attenuation thing I was talking about the rate and the offset which I think just pushes the thing up or down so let's see other stuff there yeah Todd has a good suggestion of just making a list for my possible LFO rates and just cycle between them that makes a lot of sense and hey Jepler you're here and yes well you're really welcome thank you for writing it this is great there's also a related utility function that Jeff has created I can't remember if that's in release yet or not I don't think so call a math block and the math block is going to be something we can use to do things utility like things such as add together two waveforms add a couple of LFOs together and use their output somewhere else so if you're into modular synthesizers look at the maths Eurorack module from MakeNoise or a Buchla I forget the name of the Buchla one that's sort of based on dual slope generator I think but these math types of functions that can be LFOs, be envelopes are closely related to this topic of having LFOs and math blocks and in fact these can kind of be used in some cases instead of or to augment our envelopes our ADS, our envelopes we were talking about yeah and math blocks are also in the latest version so I gotta play with those I haven't tested them out yet and show you how I've implemented those alright I think is that it I think that's going to cover it I'll mention once again if you want to go ahead and get yourself some good stuff and of course it helps us keep the lights on here at Adafruit then buy some stuff but get yourself a discount right there tinted we'll get you 10% off today in the store so head over to Adafruit.com look at some new products look at some favorite featured products just search randomly we don't have a random function in the store but you can just type in product ID numbers and see what you find that's kind of a fun sport bring up my chrome again if you go to Adafruit and if you pick on any product you'll see oh it's just a number here alright let's see is there a product $570 why yes it is it's a high altitude balloon skill badge iron on bow it's discontinued oh that's too bad let's see what's something near that number also discontinued we're in a discontinued range let's try $779 a green 3mm those are tiny green 3mm LED pack 25 of them for $4.95 that's so yeah we do have a roll of the dice for learn guides I don't know if you've seen this feature before but if you're over in learn you may have missed it but there's a little paradise here you can see me hovering over them if you click that you get a random learn guide so that's kind of a fun hey here's here's a cool ADC and DAC breakout here's using neopixels with netduino plus 2 I don't even know what that is here's an airlift shield so that's kind of a fun fun game there look there's one I did snow globe with a circuit playground blue fruit so yeah we don't have dice on the store but you can more likely search for something you actually want great comment from sea grover over in our chat that he's blown away by the progress on synthio the yeah Jeff come on this has been fantastic how is this working in circuit python amazing we have a synthesizer so thank you so much for all the work on that I know Jeff is ready to dive into some other meaty things he's also got his cool cpm running on a pico you should check out it was in the show and tell last night really cool that's gonna do it for me thanks everyone I am going to try to wrap this up and I've started taking pictures of the build for the learn guide I think I'll just solidify my neopixel strategy there and get that put together if you want to get one of these just look for computer perfection on ebay they usually go in the $40 range or so you don't even need a working one potentially depending on what you want to do with it but just want to make sure your lids not cracked look you can still see the LEDs in there alright thanks everyone I'm gonna take off now and we'll see you next week I think we've got a deep dive with foamy guy Tim tomorrow we'll have a product pick of the week on Tuesday Wednesday should have the return of 3D hangouts a show and tell and then ask an engineer and then I'll be back on this next week so thanks everyone for stopping by for 80 Fruit Industries I'm John Park this has been John Park's Workshop bye bye