 Welcome to the show. It's me, John Park, and it is time for another John Park's workshop. Thank you for coming to the show. I am back. I was out last week for the Thanksgiving holidays, and then I was back for my show on Tuesday, which we'll talk about in a little bit. And now here I am for the first workshop show in a week or so. So thanks for stopping by. And hey, thanks, Charles Brunnerford and Connor McCarter and Dave Odessa over in the YouTube chat. Hello and welcome. And where are the other people? Well, if you're chatting or trying to chat over on Facebook or LinkedIn or some of the other places that we broadcast, Twitch, you're wondering where people are, they're probably over here in the Discord. This is our Discord server. We have a live broadcast chat room. And in fact, I have that kind of cropped off. Let's take a look at, if I can widen that image there a little bit, let's, there you can see, can you see that now? Yeah, you can. That's our, that's our full complement of channels that we have here. And this is the live broadcast chat channel that you want to hop into. This live broadcast announce that lets you know when, when shows go live. I'm a little behind on scrolling through that one. And then we have general chat off topic, help with a bunch of different topics, including Circuit Python, 3D printing, Adafrit I owe, Arduino and on and on and on. So head on over to our Discord and hang out. Why won't you? Why don't you? Why shant you? Fancy English. Let me squeeze that back over there and update that. There we go. Please don't pay any attention to Lars. Don't encourage him. I don't know what he's up to back there. So my batteries tried to die right before the show. They tried to trick me. But I caught them. I was able to change out my battery pack for the microphone right before it croaked. Hi, thin man. Hi, Dexter starboard. Yeah, there was a bit of a puppet show last night because we had odd Jay on with his new mechanical owl that he's putting up some tutorials on this maker IO. Is that the right one? And that's part of digikey. I think it's maker IO, right? Someone tell me. The table does look clean, mostly. What's this one wire doing here? Let's move that there. Yeah, there was a flurry of activity before I left on our trip and then I was able to clean it off a little bit. Mike P. Hello, Gary Z. Andy Callaway. And our good friend Steve. Hello. So, oh my goodness, Lars is now available in a handy six pack. That's upsetting. All right, let's see. What else? Hello from Texas, Connor McCarter. One thing I'll mention is we've got a jobs board over at jobs.adafruit.com. You can head on over there to take a look at some of the available positions as well as have a look at individual resumes. If you're looking to hire someone, it is right here at jobs.adafruit.com. It's entirely free. Just sign up with an email address and cost you nothing to post. If you're looking to hire someone, it costs you nothing to put your info up there, including a resume and relevant work experience. If you're looking to pick up some work. So, this is the jobs board and there's plenty of stuff going on there. So, go check it out. Let's see. What else? Oh, yeah, you know, I've got this show. This happens on there we go. Tuesdays and it is my JP's product pick of the week show. Looks a lot like this. This week, it was this very cool STEM a speaker and amplifier. I love this thing. You've probably seen me use it before, especially when I'm doing projects with a circuit playground, express or circuit playground, blue fruit, and I want something a little better than the tiny little speaker that's built onto there. This has the amp and speaker. And so it's super convenient for just hooking on to a project really quickly or testing something out. Here's a little one minute recap. And the thing to know is that during the actual live stream on Tuesday, this was 50% off. And we usually do that with the product picks, we get a deep discount on them often 50% off. So, good time to get some cool gear. Take it away me. STEMMA speaker. It is a speaker and amplifier that's super easy plug and play. You can add it to a ton of different microcontroller boards and projects that need a little amp and a speaker. I've got it hooked up right now using one of our STEMMA to alligator clip cable assemblies. And I have it hooked up to a circuit playground blue fruit and I'm running the signal over this audio pin here, which on this one is actually PWM, but you can use it with boards that have a DAC as well. And what I've got are a couple of buttons here that'll give us some sounds. And so you can see you get quite a big difference by having that pressed against something, which is how these little speakers are meant to be used. The STEMMA speaker breakout board with amplifier. And yeah, if you did get a chance to decode that, you probably came up with 8-6-7-5-3-0-9 as the number that that little device was trying to call. And if you are not aware of that song, look deep into your past in the 80s to a song, what was it called, Jenny? That might have been the song. 8-6-7-5-3-0-9. I'm only going to sing it down that low today because I got a bit of a head cold. That was the consequence of travel. I braved and survived airline travel over Thanksgiving. And I did get a little bit of a head cold, but I think I'm I think I'm through the worst of it, which is good. All right, let's see what else. I think this is a good time for the Circuit Python Parsec. All right, let's get set up for this. And I'm going to plug in this board to make sure everything is up and running happily before we start. I had a fun crashing story earlier, I'll tell you all about. Let's see, there's Atom and let's go and open up. It doesn't want to show up. I think it might be under a different jaw. All right, not quite ready. Open up the, oh, that's weird. I broke the board. Oh no, I didn't. There we go. Wrong code. Okay, sorry. This will be a slightly protracted setup as I go grab that file from a different place. Yay. Okay, this should work. All right. Good. Here we go. Ready for this. For the Circuit Python Parsec today, I wanted to talk about how to do a very simple but important thing, which is serial printing without the new line. So if you're used to using serial print to the the USB REPL for your debugging or printing to a screen, one thing you'll often encounter is when you're printing out values, maybe it's sensor values or timings, the numbers kind of whip past real fast and you can't really go back and look at stuff. You can't really scroll that easily. It's a bit of a pain. So if you want to print values but not have the print statement be automatically a print, including a new line where it goes to the next line, all you have to do is this, change your print statement to include comma and equals and then some quotes with either a space or some characters in it. If I hit save right here, you will see now I have numbers moving across the screen and it'll still wrap so it doesn't kind of go off to the right forever. But it means you can keep track of things for a lot longer. So I never knew this until recently. This was a tip and trick from the Todd Bot GitHub page, Todd Bot's tips and tricks for Circuit Python. Really helpful because now you can go in and take that default behavior of the new line, remove that and even add in something, let's say a little comma now. Now when I start that, I get these little commas between them to delimit things. So that is a really simple but effective trick for helping your serial output and that is how you can do serial printing without the new line. And that is your Circuit Python parsec. Hey, here's a question. Was that audible? Yes, it was. Okay, I was worried that I had never clicked back on my mic, but then I saw no one yelling in the chat that you couldn't hear me. So, yeah, very neat trick, really, really useful. And in fact, I wanted to see if that could also be used as a more explicit way to do the new line. And in fact, it is if you put a backslash and an N, which is the sort of escape character for using a new line, if I hit save, now you'll see it's back to kind of that default behavior. So you can change what that is there, put some dashes maybe, and now it's going to run across the screen with a little custom thing in the middle. So yeah, super helpful trick. Thanks again to Todd bot for his tips and tricks page that he has. In fact, let me show that I haven't shown that in a while. I know sometimes if Todd's around, he'll put it in the chat. But let me create a new tab in my Chrome browser here. And let's bring that up tips. No, let's see Todd bot, bring that up for you right here. So if you go to GitHub and find Todd bot and look in his repositories, you'll see a circuit Python tips and tricks, your circuit Python tricks. And that has a nice little table of contents. And that's where I found this one about printing to USB serial with style. So thanks again, Todd. All right. Using tabs to get tabular data, you might still want a new line though. Interesting. Yeah, I guess it depends on if you're trying to format what kind of user trying to format that for. I find it real. This is really helpful for when you've got a analog outlet. So you're testing a joystick or Nintendo Wii Chuck and trying to find out the extents of things. It's nice to have your data show up in a neat place. All right. Let's see. What else have we got? Let's dive into my new project that I'm working on. So you may have seen some, switch the screen out. You may have seen some of my little demos in the last couple days of this and I've been updating and upgrading and Lady Aida had a cool suggestion yesterday for adding a Neo key to the mix here. So let me move all of that up and plug it in. And then I will fix the focus. And I've also got to add in an application. And I'll tell you why in a second. Okay, so let's get that focused a little bit or a little too far. It's pretty sharp. So first of all, without having it do anything that we can that we can hear. What I've got right now are these four Neo sliders. So these are essentially a plug and play slide potentiometer. And what you see we've got here on the back a couple of Stema QT ports or quick connector ports so that you can go to I squared C on your main device and then chain that to others as long as they have different addresses, different I squared C addresses. I'll show you how you change that in a second. And then this has the AT Tiny 8, I think 817 or 807 chip on it, which is our new chip for Stema types of things. So this handles all of the reading of the analog pin as well as the writing out to Neo pixels that are built onto there. You can see those brightening up and darkening as I move that slider. And then it just sends those values over I squared C in a chunk over to your micro controller. So these all are chained together and all showing up as different addresses and I'll show you the code in a second. I mentioned being able to adjust your address. You'll see here there's a bunch of jumpers, little jumper pads built on the bottom there and they say a three, a two, a one and a zero. So by default, these are actually all connected. So you actually trim these with a hobby knife in order to instead of putting a solder blob on, you don't even have to solder, you're just going to chop those. And if you chop that little one on the A zero, then you'll add one to the address. So this starts out as address 30x0x30. And if you chop that little bridge there, this will become 31. If you just chop the one, it's 32, both of them, it's 33 and on up. So you can get a bunch of different addresses and hook up I think up to 16 of these, maybe. My math is sketchy there. Let's refocus that. And you can see this also has mounting holes and it has pins if you want to connect it with soldered pins into a breadboard or into a perf board of some kind. But I'm just using the I squared C here. And then I've got these mounting holes that I can use to connect these. So you can see you get a pretty good, not too tight, but not too big, gives you enough enough room to get your fingers there without hitting other ones, which is kind of nice. And now you've got the makings of a sort of prototyping DIY controller of some kind that uses slide potentiometers. That could be things like mixing colors in a set of neopixels, could be changing animation parameters for neopixels, could be changing settings on a robot or motors, could be using it for video stuff. I'm going to use it, big surprise for some MIDI stuff, but these things kind of apply almost to any use you find. So it could be sending out USB HID instead of MIDI, could be sending out serial data, serial MIDI, OSC, kind of skies the limit. And then the addition here to the project since I started showing a couple of demos is this neokey lady. I said, hey, how about add the neokey? It's about the same size. Mine has a little case on here that I had built. But let me grab one off of my little wall of goodies here. And you can see that's the, the neokey there is similar approach, has a couple of Snemekute, has the sockets for putting key switches in, has underlit LEDs, neopixels, mounting holes and so on. I don't know if the mounting holes line up. I think they maybe do. They do. Yeah. So those line up pretty well. They're in fact the same size. I'm guessing there's no, that's no accident. And that's why Lady Aida recommended it. Good call. I didn't realize that when I got the Neosliders. So let's see the, if you look at, I'm going to take the exposure down so you can see the pixels a little better like that maybe. So you'll see here with my neokeys, I'm changing the LED color and brightening it. When I press those, I've got a few different kinds of switches and no keycaps on there right now. Sorry about that. Let's see. Yeah, I don't have any clear keycaps right here. So those are sending out neokey library based button presses to my Feather M4 here. These are sending out essentially analog values as I move them around. And then what I'm going to do in code with those is have them send out MIDI. So let's take a look at the code first and then we'll, I'll show you a little demo of this in practice. Dexter's hard board says you have to add solder to change the neokey addresses. Actually on some of our boards you add solder. On others you actually cut a trace. So the, you'll see a kind of difference here on this neokey, this something to point with that you can see. So on this neokey here we've got those little sort of chevron-shaped pads and you bridge a solder blob across those to close those addresses. These ones actually are pre-joined and so you actually cut a trace. Let's see if I can bump that exposure back up and change that focus again. There we go. So you'll see on this one A0 and A1 I cut and A2 and A3 are not cut. So it's like a little big fat letter I there, huge serifs. So that's the difference there and that just makes it easier for some people who aren't interested in soldering or don't have the equipment around can't for whatever reason you can change the jumpers a little easier than with this setup. So let's take a look at code on this. This view of the world works pretty well. Excuse me. Okay so here's what I have going on. Actually pulled out the debouncer that was causing me problems that I have to look into slowing things down but the main things that you'll see here that are of interest are using seesaw as well as the seesaw neopixel library instead of regular neopixel and the seesaw analog input and that's because we're essentially using the little tiny microcontroller AT Tiny on here to gather up our analog info and to write out to our neopixels and then we're sending an i-squared C message to it or receiving one to tell it what to do. So there's no GPIO pins being used on the feather itself or any of the analog stuff. It's all happening local to this board. That's what kind of makes it self-contained or almost self-contained. And then neokey is a similar type of thing but it's all wrapped up into this one library and so that's what allows me to write neopixel values and read button presses button releases on here and then send that info over i-squared C. So what we do is we set up the i-squared C bus on the zero clock and serial data lines of the feather and by the way I'm using a feather m4 here which doesn't have in this incarnation it doesn't have a stem of qt port so I decided to use this cool spark fund breakout board that has four i-squared C stem of qt ports on it. Just any board you have with that would make it easy or you could go a cable that goes from the regular GPIO out but this was just a convenience here. So then I'm setting up my neo sliders and you can see these are the addresses so the default's 30 then I have 31, 32, 33 based on cutting those little jumpers for address and then I'm going to set up a seesaw object so this seesaw and then I'm actually going to make a list of those by creating them in this little bit of code here for address and addresses it just goes through iterates four times and makes four objects that it puts into this list so then we end up with ss zero one two and three. This by the way is I think catney's working on a guide for this there isn't a guide yet for the neo slider but I can tell you if you have one and you're wondering the analog pin on here you want to read is pin 18 on all of them each of them have a pin 18 on the at tiny that's what the potentiometer is hooked up to and the pixel pin for writing out the neo pixels that are built on to here are this pin 14 yeah pin 14 then analog pins equal zero comma one why am I doing that I can't remember oh because I'm setting up two two of these right wait what was that about I don't know why I have that there anymore sorry it might be the cold let's say it's the head cold I can't remember how I'm using that I bet I'm not using that I think it's an artifact from from before before I batched it up so same sort of thing I batch this up and create two analog input or actually in this case four so for I in the range of the length of this list which is now contains four objects it goes through and creates the analog pin definition setting 18 as an analog read analog input pin then setting up the neo pixels in a similar way I go through all four of these sliders and set them each to be a seesaw object using the pin 14 of the slider with four neo pixels and I also set them by default to a kind of amber color then we set up the little neo pixel neo key rather that's these four keys here and that I set to be on address 38 I did that again by setting a jumper under here this one I did have to solder soldered the a3 jumper so I set it to add eight to the default and then I again created a color that I could set the neo pixels to start off at this kind of amber color this I'm not using that's an artifact I'll pull out of there to avoid confusion then I set up these keys so these are a little dictionary that it contains if we had multiple of these we name them neo key one neo key two in this case I just have the one so this is sort of extraneous and then there are four of these keys on here I set them each to have four one of one of two sorry one of four different colors that they can turn to so this one can turn red sort of magenta pink and sort of peach color and the last piece of info in here is just what midi note do I want them to play if they're going to play a midi note this might be nice to abstract out somewhere else that's easier but in this case I just gave it hard coded for four different midi notes that those can play then since I'm using something to check the state if they're pressed or released I have this little list here of key states and I'm setting up my midi this is a little list of slider positions so that we can compare the current slider position to the previous slider position at first I'm just setting them all to zero and this is kind of a cool way to do that you can just say last sliders equals the value in brackets times the number of them you want and that makes a list called last sliders that at first is all set to zero then those will be changed later as we move the sliders around and then finally I have a little list here of what cc numbers I want these set out on you can almost think of them as channel cc channels but these are the continuous controller or change values that are used in midi to adjust different things I'll show you those in action in a second the main loop of the program now it's kind of got these two different chunks so for the neo keys it's I won't go into as much detail because we've done this sort of stuff before but essentially we look to see the state of each of those four and if one of them is pressed and its state is false then it'll press if it's released and state is true then it'll send that sort of released signal that allows me to just send a midi signal one time and then the midi off signal only when I release it so it's not constantly spamming so that's how that state is used then here in the slider check I a couple carriage returns here to get that up higher why not in here what I'm doing is for the range of the number of sliders there's four of them for each slider it goes and it creates a variable called slider that is the analog input value of that slider so at the bottom here it's going to be zero at the top it's going to be 1023 so let's say that's a 1023 if the absolute value of the slider minus that last slider value that was stored initially at zero is greater than three that means we've moved it intentionally and it's not just noise and you could adjust this value but this works out pretty well because what I'm going to next do is remap this slider value that goes zero to 1023 down to the range of a midi cc which is zero to 127 so no one's going to notice you still get smooth cc values changing even though we're at first needing a change of three on the analog read to to register it then we send that midi controller change cc number which in the case of this first slider is seven which I think is normally volume on a midi device unless you remap it that'll change the volume of it and then whatever that number is zero to 127 gets sent then I'm also remapping the color value I'm creating a color value variable that is an integer based on using the map range function of whatever the slider value is and taking from zero to 1023 and adjusting that to five to 255 so that means that my neopixel can be at the lowest five on the red channel and five on the green channel and zero on blue I just decided to do it a sort of simple way so whenever I change this I'm just reducing the red and green or increasing the red and green and that gives me in the end this kind of nice ambery color partly because it's going through it's very yellow in reality but it's going through the circuit board of the bottom of the fiberglass of the bottom of the potentiometer slide pot which warms it up it's a sort of ambery color and I didn't want it to go all the way dark just so you'd always be able to see it there if using this in a darker setting so I have the minimum is is five on red five on green and then last thing we do is we update the value of last sliders to the current slider value and that allows us to continue that cycle of checking and again it means it's it's essentially quiet it's not sending new values when you're not touching it so let's see we can do one quick test here which will just be let's print the cc val and I will go into my serial here oh and look let's use our new trick let's see if I can use the new trick here and equals there we go so now it won't be so you can see there as I change that it'll go zero up to 1027 I'm not telling it to tell us which one is is sending right now so they're all going to end up looking the same so let's take that out of there though and the reason is this we're about to open up a piece of software that's a essentially a synthesizer a modular synthesizer simulator and I've shown you the earlier previous version of this before the new version was just released called vcv rack 2 I'm about to launch it why am I about to launch it and don't just have it launched already like I usually do for these things because it crashes when I write to the serial port for some reason so I'm going to close this close this serial port here whoops okay yes so I don't accidentally crash vcv rack and I found that out earlier when I was getting ready to demo my circuit python parsec and it was spamming all those numbers there and vcv rack was crashing and I and I figured out that's why so I'll launch that and then I'll bring up a screen for you there and let me tell this to show hey it's shown up all right um and I have it running through an external speaker so hopefully you'll hear it without me causing chaos on on my excuse me on my audio um so let's take a look at first of all without even listening to it uh if I set up my vcv rack here uh it has essentially a bunch of modules that can do different things and they can connect to each other and send and receive data and and modulate things uh and change stuff for each other that's kind of the really high level view of this with the goal of generally making some sound or music uh I have a little module in here called midi cc to control voltage and I'm going to say that should read my feather m4 right here uh so this is set up uh sorry let me zoom in there a little better uh this is set up as a set of 16 different midi cc values it can read and what I can do is customize it so that it listens to my particular sliders and you can see these are I had already set these up but now cc's 7 49 50 and 51 which are the cc numbers or channels is kind of how you can think of them that these are sending out on uh are connected to this module and you'll notice also the green uh jack here that we plug things into is increasing and decreasing its green value as I decrease or increase my midi uh the paradigm that's used inside of vcv rack is the same for modular synthesizers and semi modular synthesizers and synthesizers in general uh that use voltage so it's essentially in internal to that software it kind of thinks of things as I'm getting zero voltage or I'm getting up to in this case I think 10 volts positive or might be five some things go negative 10 to positive 10 negative eight to positive eight zero to five zero to 10 zero to eight it can vary um but in this case it it is the maximum so I can change some other thing which if you if you noticed over here there's one modular in particular which says a d s r uh that is attack decay sustain and release and if you look at the helpful graphic there those values are changing as I change my sliders and what these represent are an envelope of sound so a sound can start stay sustained at its maximum volume and then end instantly and that would look something like uh let's see this so that's a case where I have an instant attack I have no decay period it just stays from the attack value to the sustained value forever it holds as long as you hold and then it drops off um the if I adjust these you can see I can now change the amount of uh time it takes to decay from its attack value to its sustained value which makes more sense if the sustained value is is uh a bit lower than the attack on slot and then if I want it to have a long release um this is sort of not a relative scale this changes its scale the timings of the first stuff are the same but this last thing is now going to release a long time uh so let's see if I can actually show you what that sounds like um I'm going to set up the output module here where'd you go to be yeah okay what's missing you should be playing over that what value I've taken some mixer value really low I said oh I know I'm not sending any uh so let's do one other thing I'm going to press one of my buttons on the um little neokey let me get a nicer sounding one I've really made this sound terrible I'm sorry I was goofing around with that um so here's very plucky starts and stops instantly uh in fact you know what I'm gonna should I break some stuff let me no no I don't want to all right so let's just see if we can hear a difference in this sorry um I'm going to now increase the attack yeah you know what I will I'm going to break a bunch of stuff um suffice it to say before I go and break that if you see these four red buttons those are actually uh based on my little neokey and I'm essentially using those as there's this module called flow here um I'm using it almost like a mute switch do I want some of that signal flow to go through one of these four resonators here um but I think that's that's making it really hard to demo the other thing so I'm gonna take uh take their control away from them for a second and I'm gonna patch this a little more directly uh let's see I do so this little oscillator here is what's actually making the sounds and I'm gonna go directly out okay let me get a nicer sounding oscillator let me make some of that pitches a little higher okay that's a little better so if I adjust this slider here forever short release you can hear it's very short it does not have a release to it it just ends and if I want to have a really soft let me raise this uh soft intro I can increase that attack time then it takes longer to get to that attack uh and you can even see over in this uh item here this is vca that has a little meter if we have it doing a long decay I'm gonna slow the tempo down on this real quick so you can see that better hmm I don't know why I've got such a low level on this sorry about that this uh this meter is all my levels are really low so this meter is not helping me out let me clear some stuff out of here go away go away go away go away simplify you go away so now I'm essentially not doing anything with these right these are not connected to anything um but what I'll do is I'm gonna yank this sequencer out of the mix and I'm gonna yank the trigger from that sequencer out of the mix I don't need that uh I'm gonna lower the volume in case that ends up being very very loud and now what I'll do is actually take those midi notes that I'm sending with my um neo keys here and oh you know what let me undo a bit before because knowing which ones I connected them to is is not fun so long okay so that brings those back okay so what I'm gonna do is I'm gonna take these uh cables that are coming out of here you can see they'll turn green when I press this note here which is a e and that one's a f sharp and that one is a g and that one's a a sharp so what I can do is just run uh a midi oh you know what yeah let me make a mid a better midi thing hold on midi to cc the most basic one okay so this one it's actually a little simpler good all right let me delete some things I don't need to worry about which note it'll do it for me uh let's delete you remember how I showed the signal state game the other day this is the same like using modular synthesizers is like playing a puzzle game so it's part of the appeal uh so now this uh is gonna read my feather m4 for not the midi cc which is what these guys are doing but instead just for the midi notes that are being sent and and that includes the pitch value as well as uh the gate which is how is it being sent or not being sent so if I attach my uh I don't need a quantizer either so if I take my volts per octave from there and send it into this uh module here and then I trigger the envelope that we've been playing with from this all right this will make it a lot easier to to demo so I can all right so that's increasing that um amount of release time and if I go a short decay you'll see when I first press it it then jumps down to so it's louder right on the attack then it gets to this um um whatever this level is of the sustain and then it drops off so if I get there you can see it jumps all the way up and then immediately goes to the decay also you can see the lights on here which are kind of cool they will show you what phase of things we're in uh so if I increase you should see the lights going from attack to decay and now it's in the sustain and then when I let go it does the release spending a lot of time there um we can do a lot more with that we've done that in some other shows uh like adding an arpeggiator to it or having it modal so it only plays notes within a certain um uh mode or key this is four keys I don't think it's necessary I just gave it four notes that kind of sound good together um and if you uh if you want to take this kind of stuff and use it in other ways it's really simple so right now let's say I don't really want to noodle around with this attack I like the attack decay sustain release there but I want to use these knobs to change values of the oscillator itself uh what I can do is say okay the output of this first slider is going to change the timbre of my oscillator so try a different oscillator and that'll do a different thing let's see which one is that that is the wave shaping oscillator so it's a wave shaper oh this this two operator FM is kind of cool kind of making two sine waves battle each other uh now I can take my second slider here and say I'm gonna adjust the morph value which is another kind of just general name for some modulation that's happening and it varies by by model um and it's kind of cool to check out what those waveforms look like so let's open up an oscilloscope by the way this is free software I'm not paid to endorse it I just like using it um in case you were wondering but I feel good about it because it's free and uh you can you can go and download it today uh just look for VCV rack two there is a paid version that I think can be used uh as a multi-channel VST inside of other applications but this is just the free one I'm using uh so let's take the output of that um oscillator or let's yeah that's fine we can we can do it even when it's not playing because it's not the gate isn't open for the for the VCA there we can take a look at what the wave looks like so you can see there we get a really smooth sound because there aren't many harmonics it's a really smooth looking wave then we can start messing with it now it's wave folding now it's a sign now we multiply one sign against the other and you can get lost in this and play with this all day I don't know if there's any others that are particularly uh let's see maybe the let's do this chords okay so this one creates chords um and not only does it create chords but the wave shapes can change as can the voicing of the chords so this changes the voicing and so I'm going to use a third slider here uh instead of the sustain now I'm going to adjust the harmonics knob which I believe is the one that changes which chord you're playing so let's uh drop that down and that should work yet oh you know what I gotta bump up my since I'm unplugging things over here it's uh using defaults I don't love so that's a different chord than the others now this will be the same chord but voiced differently which just means which notes uh in which octaves are played uh even though it's the same notes kind of goes through the overtones there is almost what it sounds like uh and then you know we could take this last one there isn't actually um a kind of sane thing to plug it into on this oscillator but I'm going to put it into the model uh category which changes which of the different possible synthesizer models that are built into this one this one by the way is based on the mutable instruments plats uh which is a digital um oscillation sort of sound source module that has a bunch of different models built into it sometimes called a meta oscillator or uh yeah meta oscillator thinks the name for it so now this last one will change which model we're using so it'll get very very different sounds so you can see this is just changing these these buttons you can see the led traveling up and down on this center row here some of them are drum and noise based at the red section so they might not make sense to play this way this is like granular synth stuff particle noise you get that kind of bubbly that's fun all right um so I think that hopefully has uh inspired you a little bit about uh both finding a fun thing to play with on the side like this vcv rack but also uh just making a physical interface um in in your uh microcontroller world that you can use on your computer and if I go back to this um if I undo some things here and get back to controlling my adsr uh you can see here this is a lot more this is a lot quicker to go and adjust those four parameters with a set of uh sliders than it would be going with one mouse button at a time you might some people use touch screens with this I think and that that could get pretty fast um but it's it's nice and satisfying to have uh a slider stay where the slider stays until you decide to go and touch it so uh I'm a I'm a fan uh Dexter Sarber says it's nice but you can can you play street chicken on it and Steve Hook uh says yes likely uh yeah I don't have it loaded up but yeah there's sampler modules I guess I should load load that in as a sample or um transcribe my song to somehow play in here what did I write it in I don't think on here I can't remember now maybe maybe that was done on vcb rack uh so let me know if there's other uh thoughts or questions over in the chat I'll bring bring up our discord here before we finish up let me see if there were any missed someone says yeah how much you can do on a stem of qt you sure can you can do a ton a couple of little um sort of things that are in progress and gotchas we found some issues trying to run these neosliders on rp2040 so uh we're going to be looking at that I think Dan H is getting out his logic analyzer to see what was going on um just uh a heads up if you're if you're using this in your running problems try it on a m0 or an m4 or other things those are the two I've tried it on um and uh that's just for these and so I'm not sure it could be to do with the fact that this one has the at tiny uh instead of the sam d9 or whatever we used in the previous stem of stuff and that's a that's a shift to our stem of things so I'm sure we'll get that working because that's a much more available chip uh for us um Steve brought up in the chat the yeah this is kind of like an rgb version of the 16n which is a really cool uh 16 fader board that's a diy project you can buy them as kits or make source them and make them yourself runs off of a teen c 3.2 um and has 16 sliders that can send midi cc and even i squared c info um how many addresses available on the neo sliders oh this is a good one this is a fun one for the chat uh we have four jumpers uh they add either one two four or eight to the address and you can use them in any combination so how many addresses does that give us I will leave that to the chat um if I try to do it I'll embarrass myself mostly but yeah so so this one adds eight so you can do a lot how about that answer in fact Steve I think if we look at the page let's look at this web page if we look at the page for the um um the learn guide here i'm gonna bring this up you'll want to see this if we bring up learn guides and I look for neo trellis we did a graphic I think I based it on one of Steve's graphics uh for for tiling so this one has you can do up to 32 of these the question is how many address slots does it have and I think I put a chart up here based on this cheat sheet yeah there you go so this one has more because this one this one has the a four which adds 16 okay so that won't answer it for us drat um but yeah it's a cycle there's there's Steve okay you're on asking me a question I'm just gonna point at your link on lines where you created a thing four Steve says four yeah it has four jumpers that's right I don't know what that math is I'm no good with hex math like I told someone the other day I don't have six fingers I do have 10 but I don't have six so I'm no good at hex if that computes all right I think we've done it I think we've exhausted our supplies I never even walked over to the bench today let's let's head over there since it's sort of cleaned off uh oh that's kind of dark I can head over here and do a whole lot of nothing anything to talk about over here uh hi and now nothing happened over here today clean bench and it stays that way it was all at the computer today but I think that my next step with this will be to come up with the um a little some measurements and spacing to put together your own little board of stuff especially now that I know this has the same mounting hole spacing we can make a cool little give it some space like that have a little four buttons vertical like that and four sliders microcontroller kind of cool uh yeah Lars did lose his hat and hey did you know that we have these in the store now I think only the linear one is left but uh remember I was playing around with those and uh now now Adafrit is selling them so go go check out those big giant keys they're pretty cool all right 64 Connor McCarder says 64 question mark maybe I think it might be 32 I don't know as far as power goes uh four neopixels per uh how many you can drive just off of your your normal microcontroller you might have to add add external power at some point uh at least six where's my math people math is hard I don't want to do the math of that uh so if it's 30 so if we have one address we get two of them if we do that by itself three four five six seven eight nine ten eleven twelve I'm sure I just embarrassed myself into that wrong uh my ps is the slider basically a linear version of a rotating potentiometer yes it absolutely is um and it's almost the same mechanism on some level there's there's two tracks that are offering um a connection to ground and power and the uh on both ends uh so you got your wiper which is measured and that's moving and essentially is decreasing the resistance towards the end it's getting closer to it's increasing the resistance of the the end it's moving away from vice versa take all that and loop it into a circle and that's what the potentiometer is not not a hundred percent but basically that's it uh still no math answers that anyone is super confident in research is needed Connor says yes I bet Lady Aida has that answer off the top of her head she probably even said it in the in the uh the new new new segment all right we'll get back to this uh Phil Wilshire asks hi I have a 2.8 pi tft display how do I connect this to a pi four if that tft display is designed for the raspberry pi that has 40 pins it's still the same connector on all of them um so I think that would just connect and it'd be more a question of software if anyone has experience with that specific one uh or if you've run into a problem with it let us know you can also bring a question like that to the chat if you head here to the discord uh there's I think help with raspberry pi right here and that might be a good good place to go and check that hey we got an answer from c grover and his answer looks succinct and confident it is 2 to the fourth power so 16 love it so you can do 16 of these as far as the number of addresses the bigger question then will be your um uh neopixel if you can do uh 16 times four neopixels at full brightness off of just the um the power here that I'm not sure so you may need to supply a little more power keep them dim you know you don't always have to go full full crank with them and that's another thing about neopixels they have three or four uh LEDs in them if you are just dimming red up and down you're using 20 milliamps if you're going from black to white you're using 60 roughly um dexter starbert also had the same math thank you I missed that you said it right away didn't you good all right uh thank you everyone I'm gonna go uh get over this cold and uh I will see you next time thanks for stopping by be sure to stop by tomorrow for scott's deep dive with scott uh he's up to something not bare metal circuit python on a raspberry pie this week but maybe some of the bluetooth um python flying over the air to to uh code wirelessly he was he was showing off something last night it was really cool uh all right yes thank you so much uh thanks dexter I hope I feel better too I'm gonna go drink some hot tea that's what I need thanks everyone uh see you next time bye bye