 It's me, John Park, and I've got a big, huge piece of text in front of my face. That's because something went a little bit wrong with one of my layers here, and I was trying to fix it underneath the scenes, but there it is. So let me put that in the right place, stand by. All right, that's a little hint, by the way, as to what today's coupon code is going to be. Okay, it's not a hint. That's it. That's the actual thing. That's coupon code. So welcome, and when I say welcome, I mean all of you, all of you viewers, and I also mean the people over here in our chat. We have our Discord chat, as well as our YouTube chat, hello, hello. Hi, Dale Echols, welcome, Charles Burnerford, nice to see you all. Dave Odessa, hello, hello, and there's our Discord chat right there. If you want to join the Discord chat, by the way, if you're over on Facebook or Twitch or somewhere where there doesn't seem to be an active chat, then head on over to adafrew.it slash Discord. Look for the live broadcast chat channel. This is it right here. So thanks for stopping by and hanging out there in the chat. Discord's not just for live streams either, we've got help channels for a variety of projects and programming languages and topics, as well as general chat, pet photos, all kinds of good stuff. So come on over to the Discord. What do we have now? Party something thousand users or something like that in the Discord. I'm sure it says here somewhere, but I don't see it. Let's see, what else have we got going on? Well, I blew it earlier, but let me fix this and how about I'll give it a color even. There's an appropriate color, sure. That's the coupon code for today. If you want to get 10% off in the store, head to adafruit.com. Throw some products into your cart and on the way out, type in honeycomb. That'll get you 10% off the entire order on actual stuff. It won't work for software or gift certificates or subscriptions, but it is good for actual things and that's good. Till about midnight East Coast time tonight, I think is when that deactivates. But go find some cool stuff. We had some new products in the store with the Ask an Engineer show last night. In fact, let me jump over to my Chrome browser here for a second. What have we got going on in the store? If you look, you head to Adafruit. There's a section here called New Products. You can also click on products dropdown and click New Products View All. You can also just type in adafruit.com slash new and that'll show you what's new in the store. We had a new display here, a revision of a display that now has the iSpy connection, ribbon connection to it. We've got some micro connector crimping pliers if you're doing some really small crimping work. Coming soon, the M7, the Metro M7, that should be, I think, a handful of them in the store sometime, maybe today or tomorrow. I'm guessing tomorrow, if it's not already there today. If you want, you can find out, hit more info and put your email address here. Click Notify, you'll get an email when that really wildly powerful and capable Metro M7 hits the virtual shelf. You get 10% off on it if you act quick when that comes out and you grab one. There's also this new cowbell and Adalogger for the Pi Pico. It's got a real-time clock, battery, I think it has a real-time clock. Yeah, real-time clock, battery, micro SD. So if you're logging your data, that's a nice one for those kinds of projects. So anyway, yeah, and you don't just need to get new stuff. You can head to products, click on a category, power. What can you get in power? You can get some cables, you can get some switches, you can get some solar stuff, all kinds of good things in the store. So type in honeycomb and you get 10% off on that order. Let's see what else is happening. I've got a show speaking of new products on Tuesdays. It's JP's product pick of the week on the show. I like to grab something from the store and show it off and give you a big humongous discount on it. So this week it was this LCD character backpack, super cool, nice revision, makes it way easier to work with because it's now got a StemAQT, so just a small little set of connections to your micro controller. And then you can run on any of these 8x1, 16x2, 20x4. We have a number of different backpacks and that was 50% off during the show. So this happened during the show only, no coupon code needed. Here is a little excerpt, one minute excerpt from yesterday's show. No, not yesterday's show, Tuesday's show, that's what it was. It is the LCD character backpack. I took our board, our little LCD driver board there and put some socket headers on there, can plug that in like that. Okay, so here you can see I've got four lines on this one. I've got some blinking cursor, which is part of the library. Notice the J and P, those are custom fonts. So I did a couple of custom letters. Same with that little sort of space invader guy who's flying along on the bottom there, it's a custom. So I filled three of the eight custom slots. And then you can just call them using an address. Here you can also see I'm doing some of the sort of automated scrolling. Moving here, I'm using the little move right command. And then I'll run this set of text and then you scroll to kind of move that off to the side and rearrange that. That's my product pick of the week this week. It is the LCD character backpack with I squared C and SPI and StemAQT connectors. Indeed it was. All right, and let us know if you put those into some projects. I'm curious, they've got some nice little mounting holes in the corners there. You can make a little cut out and mount that inside of a panel. Look really cool. By the way, when I was looking through my parts for the LCD displays to see if I had any laying around, I found a really nice old kit here. Let me put this on the overhead. This is a blast from the past type of item here. That was the 16 by 2 LCD shield kit. And I have a built one right here. So I had one that I never put together. And here's one I did put together. So this was a similar type of idea. It's a backpack for an LCD display. But it is in Arduino shield form factor. So that plops down onto an Arduino board and lets you control the LCD display as well as gives you a number of buttons here. A little sort of d-pad and a select button. There's the little contrast potentiometer there. This is a reset for the Arduino there. So I should fire that up. I should grab an Arduino and fire that up. That's kind of a cool oldie but goodie right there. So sometimes I guess it pays to never clean out your parts drawers. Even those are pretty obsolete, they're still kind of fun. Gonna need to play around with. All right, let's see. The next thing we've got for you. Let me get set up here. I've got a nice little circuit Python parsec. I'd like to share. The circuit Python. All right, so let me get set up here. Grab my code window there so I can see that, okay. For the circuit Python parsec today, I wanted to talk about using the color wheel from Rainbow I.O. So in circuit Python, there is a library called Rainbow I.O. And it has this function called color wheel in it. It's a really convenient library to import so that you can run through the hue of a 360 degree color wheel with just one variable or one value changing in order to change to any color on the rainbow. So here's how it works. You can see here I'm importing Rainbow I.O. I'm setting up my NeoPixels and the very first thing I do is I actually set them to color 200 on the color wheel. So if I re-save this right now, you see the first thing it'll do is it'll pop up with red, okay? So red is close to the top. This is a 0 to 255 color wheel. And then I'm setting up some ranges and a little segment variable that allows me to jump between positions on this color wheel. So the way that is done is simply with this leds.fill rainbowio.colorwheel. And then a value, and that value is one of the positions along the color wheel. If I wanna step smoothly through these, I'm gonna say let's run through 255. So that's the entire rainbow of colors. And you'll see all of my NeoPixels here will sweep through. And I'm also printing out values there just for a bit of information. So if you pay attention to those, you can see I'm turning that one number, which is 0 to 255, into a tuple just for display purposes. So I can see what the red, the green, and the blue values would be. That's kind of a pain in the neck to try to interpolate between those three values. So if you want instead to really easily jump to values, you can use the color wheel. If you take a look at this, let's say with five segments on the color wheel. Now it's gonna jump from position to position to position, running through sort of a course section of the color wheel here. And you can adjust that to be anything that you want. So you can use this on individual pixels. You can do some really nice rainbow swirl types of things. But I like it just for being able to have a really minimal bit of code that allows me to change any color of the rainbow on my NeoPixels. And so that is how you can use color wheel in Rainbow I.O. To adjust the hue of your NeoPixels in Circuit Python. And that's your Circuit Python Parsec. Yeah, so let me jump into a couple other specifics since I saw there was a comment from DJ Devon 3. How the stepping is working here is this right here, for J in range. So range you often will just step through the sort of minimum increment of one. If it's an integer type of thing, then you're gonna be able to the sort of minimum increment of one if it's an integer type of thing you're stepping through. But you can actually give the range command three arguments. So you can say a number you're starting on, a number you're stopping on. So the beginning and the end of the range. And then the third thing is the step size. So normally that's one, but if you wanna skip to every 10th thing, you could type in 10 there. You'll also notice if I, let's set this to a pretty fine grain. So I'm gonna say 85 steps. So we're gonna be fairly smoothly interpolating through the entire color wheel. Okay, so you can see we go red and yellow, green. Okay, so if I just wanna go halfway, if I wanna stop when I get through to blue before I ever reach green, I can change what this end hue value is. So right now I have it stopping at 255, which is essentially running all the way through the color wheel. If I say, let's say 126, so it should be about halfway point or 128 would be the exact halfway point. So now you'll see it's gonna stop, actually sorry, it sweeps this way. I always forget the direction is opposite of what I sometimes think is sort of think of a pointer that's going counterclockwise through the wheel or the wheel is turning clockwise. But you can see I'm stopping at that halfway point. So I'm going red through yellow, green, blue and popping up. So I'm never reaching those magentas. You could flip that and go to the other direction if you needed to to run through the other side of the color wheel. And I'm always a fan of using hue. So there's a few different ways that you can use hue. Color wheel just grabs hue. There are also ways to use hue saturation and value. So you can change how much of that color is mixed in and how bright it is. But the typical use is full saturation and just running through particular points on the color wheel. You can see by the way in the graphic that I threw up here, I tend to think of the color wheel as zero to 360 degrees. So I wrote some of those numbers on the inside there, a little faded. But with the color wheel inside of rainbow, you have to think of zero to 255. So it's just an adjustment if you're used to thinking in degrees. All right, so we can stop that running there. And this, by the way, is I've just got a circuit playground blue fruit here. And we had a LED bulb, LED sort of spotlight light bulb in the house die. And I cracked the diffuser off of the top of it. So it makes for a kind of a nice diffuser to throw on top of some neopixel stuff. All right, so let me put that, set that off to the side there. All right, so next up, okay, I wanted to give a little update, super brief update, in fact on my meow MIDI project. So the cat I am turning into the cat keyboard. I'm turning into the MIDI keyboard, I'm in the middle painting it right now. So you can see it's in pieces. The keyboard was originally sort of off white. You can see it there, kind of a warm off white. So I just primed it and sprayed it with white and I hit it with some sealant. And these, the black keys were actually brown. So I've hit those again with some primer, black spray paint, a few coats and some glossy primer on there. So those will look nice like that, like a typical piano keyboard. Just to partly differentiate this from my line out Meowzyk project, I am making this one look a little more like a MIDI keyboard, typical MIDI keyboard. So cat has gotten a bunch of coats of primer. I've made some mistakes, had to do some sanding, some more primer, some more paint, mistakes, sanding, paint. But it's never going to look perfect, especially because I was doing this in somewhat windy conditions and getting little bits of dust on it and stuff outside. But anyway, so that's the main body of the cat there or face of the cat. Cone two is going to be black. I'm going to give the nose is black. I'm going to leave some of the buttons, the blue and purple ones, but I didn't want to keep any of that orange and yellow in there. So that set of buttons, these were the buttons that were either yellow or orange. These I'm going to do, I think, in a sort of day glow neon acid green. And I may do some sort of slitty eyes on the cat, too. More cat eye shaped eye pupil. That's also the neon green. There's actually a coat. At one point, I was masking this and doing white primer and then the green paint here. But then I had trouble masking it properly when I went to get black. So I kind of screwed all that up. So I may scrape away black and discover green under there. That may work well enough and then seal it. Or I may make like a little vinyl sticker or something to put on there. I think I'm going to resist doing neopixel under lighting LED stuff, I think. But maybe not. We'll see. But this will look kind of cool. These will, like I said, these will probably be green. It also kind of looks good with the white and black. Gives him a slightly more formal look for your midi cat. And then I'll also paint the bottom underside of the base of it, also black. And then integrate my thing I was working on last week with the accelerometer into the ice cream cone there. So that would be attached with the cabling. And it smells like spray paint in here, even though this was all painted outside. Just the fact that some of it's still drying a little bit even after a day. That means it's off-gassing some delightful spray-painty fumes, which is not a lot of fun. So that's the only update I have on that. And I'm working on the guide for that. Code is up if you want to look in the learn repo up on the Adafruit GitHub. You can find the code for that. Someone said he looks more like Lars now, the cat. Is that a compliment for the poor cat? OK, so on to the new project, the next project. I had shown this a little bit on show and tell last night. And I showed the process as I was working on this. Let me go to the down shooter here. And this is the PCBs that I got in for the chalk keyboard or key switches. So these are the little low-profile chalk key switches. We didn't have a footprint for those for fritzing. And we don't have a breakout for these right now in the Adafruit store. So I was able to use kind of a combination of the data sheet and measuring stuff in Rhino. I came up with a really good proper footprint model. And then I was able to export some of that stuff over to the kind of combination of Illustrator and Inkscape. You could do it all in Inkscape. As I found out, Illustrator had some issues with how it exported the SVG that gave me trouble. So it may be better just stick to Inkscape for building a fritzing part. I also just got these in. So these are, at the same time, I had made a little breakout for an individual one. So these won't fit onto a breadboard or perma-proto. But this will. So this gives us standard 0.1 inch spacing to go into a breadboard. And it also has, I don't have a spare one here, do I? No, we've got the Reverse Mountain Neopixels. You can see some right there. So those solder on as SMD parts onto the bottom there. And you can kind of, in the reflection there or in the specular highlight, you can see my traces there running up to these. So this breaks it out into, what, five pins? One, two, three, four, five, six pins. So that we can do data in, data out, power, and ground for the Neopixel. And then the ground and switch pin for the switch. And you could combine. I could have combined these, but just got lazy and didn't as far as the two grounds go. There might be reasons not to, but. So this, thanks, Todd. So the breakout's looking good. Yeah, so this means that I haven't even tried one of these yet, but presumably it works. You solder these down. And these are actually really, I got both. I have two different, I sent these to JLCPCB and these to Oshpark, both of which the tolerances are excellent. And my pins really kind of press fit into there nicely. I'm sure these would work even without soldering them. At least one of those pins is like in there really nice and tight without being a problem, I think. So then solder on the Neopixel there, and then go to town for developing. These switches, you can see they have a nice window knocked out there for the Neopixel to glow through. So you get a lot of light up through the top of there. It's kind of unavoidable that you'll never get the key caps glowing from the middle outward, because even on these type of MX-style key switches, the LED always favors one side. There you can see the LED there glowing up through the top of the thing. Even though some of these stems are kind of glowy, it helps a little bit of light diffusion. You won't get it centered, it's just not going to happen. So let's see, the issue that I ran into, and I mentioned this on the show until last night, is that in making the fritzing part, I worked really hard to try to make a single part in fritzing that works on the PCB as the through holes that you need for the key switch and the SMD pads that you need for the Neopixel. So fritzing does not like that. Fritzing really, really, really wants that to be two parts. In the interface in fritzing, if you try to use this part that I made, it will keep trying to connect traces up to some pad that isn't a pad that's in the middle, just because it got really confused about bottom side SMD pads and through holes being in one part. So this is the PCB that I had made. It has problems. I made it, I finished it late at night, didn't pay too much attention. I missed the fact that it did not connect a bunch of my grounds to ground pads, so I had to go bodge that stuff. I'll show you the embarrassing bodging in a second. And the other issue is that the I made, this is not fritzing's fault. This was, I think, me not paying enough attention, as well as outputting the SVG file from Illustrator instead of Inkscape. Illustrator, I set the stroke to none. It ignored that. So it could just be which SVG export I picked. It set the stroke on these holes to be some tiny number. They ended up getting plated. So you can see these are just mounting holes here for the plastic parts of the switch. Those have plating in them. No big deal. This hole here is the cutout for the NeoPixel. Now, normally, if you look at the part here that LeMore made in Eagle, this is one of our little breakouts, NeoPixel Breakout or NeoQ Breakout, there is a nice little rectangular cutout there in the PCB. It's really painful to try to do that in fritzing in a PCB. So instead, I just made a 4 millimeter circle, which actually works great. You can probably see it like this. These NeoPixels fit really nicely in there. The problem is my pads are so close to those that when I put together the board with seven NeoPixels, one of them had a short between the data out and ground, I think it was, or data in and ground. So I couldn't figure out it's one pixel wasn't working. I managed to realize that was the problem. De-soldered it a little, moved it a little, re-soldered it, and it worked out. So I'll show you that one lit up in a second. So I got some great help from a forum member on the fritzing forum named Van Epp, showed me settings in the SVG file, which is an XML. You can just edit it by hand. So I just went in. He made a part that fixed a bunch of stuff, and then I went in and updated my part. I was able to remove that stroke that's around that. So it would be a proper fill. It means that the board house won't try to copperplate that. So the other update I made is I realized these little reverse-mount neopixels. Let me show them. Let me show you one of these in the store. Let me find my browser. What are these called? SK, SK what? Is that not their name? I think just reverse-mount neopixel will find it. Reverse, yeah. SK6812. These are actually kind of symmetrical. These don't favor being on the bottom of the board or the top of the board. Maybe you're not supposed to do it that way, but on my next revision of this PCB, which is coming on Monday, I just placed those SMD pads on the top. It actually made life a lot easier as far as fritzing, letting me work with the part. So the neopixels will go in in the top solder. There is no problem. There's plenty of clearance with these switches here, so I don't think there will be a problem. And the neopixel basically sits in the same spot. It's just slightly higher or slightly lower, depending on where you mount it. But since this is the body of the LED and here's the legs coming out, it's basically the same. It's going to be off by whatever the thickness of the board is, they're 1.6 millimeters or something. So I think it'll work out. Someone tell me in the chat if you've got a concern with that. Of course, there's always making sure I get it not flipped and all that, but I now have the silkscreen on the front. It was actually kind of tricky for me to get the silk I wanted on the back of it. So anyway, lots of little fun. Let me show you the bodging that took place. So here is, oh yeah, thanks Todd in the chat said, this is specific to the SK6812 mini E, which is this particular package made for reverse mount through the cutout and all that. Yeah, DJ, I wish I had one here, but I don't think I have any of them here. But if you looked at, let me switch to this down cam here, if you look at that part right there, this is actually, I think, the one I had to fix by lifting it up away from the board a little bit. There's one that's normal. That is kind of sunk halfway down into the board and halfway protruding, so it'll just be up the other way. So here's what this looks like. So right now, I am just using standoff here so I don't waste this cutie pie on what turned out to be kind of a problematic board. So eventually that cutie pie will sit nearly flush. I didn't do the cast-alated pads thing. I was not even going to bother trying to do that and for it's sake, I think that would be possible for sure, but it would be taxing for me. So that won't be goofy like that. That'll be pretty close to flush sitting on the board. So if you take a look here, let me see how close I can get. So you can see, here's a nice example of it. I believe this right here was islanded. So what I thought was my ground plane, I had accidentally made an island. So that means this ground on the switch was touching nothing. So I scraped away solder mask and soldered a single little bodge wire, like a strand of wire across to another little scrape away, and that gave this whole little ground pad here a connection into the ground. Same with this one, so I just ran that again over a little trace there so that this guy wasn't islanded. So that was pretty much the main bodging was just, let's see, here's another one here. So I made problems for myself all over the place and it was just because I was doing it at one in the morning or something like that was a bad idea. So I just hand wired a bunch of the grounds around. You can see this is one of the trickier areas. Here is the overlap of the cutie pie with all these mounting holes and traces and things. And there's some unnecessary stuff here. I don't need these USB pins that are in the PCB part for the cutie pie and fritzing. I should go and delete those because those are actually part of the cutie pie board. They shouldn't be on a PCB footprint for where it goes. But luckily, they didn't ruin anything. Let's see, Sea Grover says, could you have used small through hole pads instead of surface pads? Would be able to mount the neo on top or bottom. I think that was a thank you for the suggestion. I think that was another case where fritzing hated me when I used through hole pads for that part. Oh, no, no, no, no, I'm wrong. It was this case where it tried to make this magical pad that had no drill hole but acted like it was just solid copper running straight through. Yeah, it wasn't like a via or a hole. It made a part that it was really mad at me about. And so that was making selection and the UI go crazy. But yes, I see what you're saying. You maybe could just do a through hole, regular old through hole part to turn that all into a single part. That's a neat suggestion. I may look at that. OP says, looks like you're in the process of making your PCB into a protoboard. Yeah, it kind of is. But provided I didn't ruin anything just now like touch and stuff, this does work. And when I first put this together without paying attention to all the mistakes I had made on the PCB, it actually, I think most of the LEDs were connected to ground and working. It was some of the switches, a large number of the switches that weren't. Also, this is kind of tilted at a funny angle right now just because, again, I have that goofy amount of header stuff right there. So let me find a USB cable and plug this in. And I can give you the tour of it both functionally, what I've got the board doing, and as far as MIDI stuff goes. Not as easy to find a USB-C cable as I thought. There's one. So this, unfortunately, is pretty light. And the cable is going to drag it around because I forgot my little, yeah, I'll just weigh down the cable with something. There we go. OK, so I can turn that exposure down a little bit, something like that. And let me turn down the sound first. OK, so here you can see it's registering the seven button presses on the QDPI, just as individual GPIO. So each of those switches runs to a QDPI GPIO. And then one of the GPIO pins on the QDPI runs to, I forget which one, maybe this Neopixel first and then they go data in to data out to data in to data out all the way through. So it's a single Neopixel strand, essentially. The color stuff I have going on here, I just have anything that gets pressed goes to Magenta and then returns to its original color, which I think I used rainbow IO on. I can't remember, we'll find out in a second. Then let's take a look at the code here. I'll get rid of, let me hide that color wheel. I don't think we need that anymore. And let me open, there we go, there's the code on this. And let's take a look. I can't remember what I'm printing down here. Let's, OK, so yeah, this was kind of the first test of things, it's just this logical key map. So I can call this 10123456. So I just did this kind of nautilus spiral as far as numbering them. That is, if we take a look at the setup here, where's the key setup? Did I blow past it? Yep, up at the top. So number of keys is seven. Where are my GPIO? I'm looking at the code that I think I'm looking at. Where the heck do I set up these keys? There it is. Boy, it was hidden. Sorry about that. Chalk pins, OK, so I made a variable here called chalk pins that contains the pin numbering, A123 SDA-SEL-TX-RX. So those are connected, essentially, A1 is here, A2 is here, A3 is here, and so on. So I take that and make a keypad object using the excellent keypad library. And I'm able to set up what their value is when they're pressed and the pull direction of the pullup resistor. And then for the colors, OK, I've just set up a set of hues that I liked using that color wheel that I showed earlier. And if you take a look at the code here, the main loop chalk equals chalk events get. So it just checks and sees if anything happened with the keys, pressed or released. If so, I grab the number. So those are 0, 1, 2, 3, 4, 5. 0, 1, 2, 3, 4, 5, 6, rather. If one gets pressed, the first thing I did was just taking a look at printing out the key number. So these are the keypad numbers, 0 through 6. And then I'm also changing the color of the LED. And these are LEDs 0, 1, 2, 3, 4, 5, 6 as well. Those match the numbering. 200 on that color wheel, so that's what gives us this kind of pinkish, purplish color. And then when I release, I go back to their pre-assigned color that comes from a list. So if we go up here, this is the list of whatever one goes back to. Now, to get into the MIDI instrument type of thing, and thank you to Charles B mentioned isomorphic keyboards. Most of them have 96 keys. Take a look at l'instruments. So I kind of had some vague ideas about isomorphic keyboards. I've used some iPad programs that are arranged in sort of an isomorphic layout, which means essentially a grid of some kind. They can be rectangles. They can be squares. They can be cells of circles or hexes like this. But essentially, it's much older than I realized. I did finally look it up last night. Essentially, an accordion keyboard is this style keyboard, which is really to differentiate from something like the piano keyboard. Piano has a different shape for every chord in every key. So you kind of have to learn all these different shapes if you want a major chord in this key. It's going to be differently shaped in this key, a differently shaped in this key. Isomorphic keyboards attempt to solve this so you don't have to do as much practicing. And if you get used to a certain spacing and shape of your fingers, it will move through any interval or any shape or rather any key that you're in without changing. So you learn shapes and they stay consistent. So this not really an isomorphic keyboard. It's a little cell of one sort of. But I'm using that term loosely to talk about the idea that you can create shapes that sort of repeat depending on how you set them up, as well as just the idea of this is not a chromatic keyboard. So it doesn't have to be. It can be. So the way I'm running this is that I've picked some intervals that I like. And I've also picked some modes for chords to happen per key. So if we take a listen, let me turn up the volume of some oscillators here. And I can show this in a minute, but I'm just running vital, which is a free and open sort of synthesizer. Let me know if that volume is loud enough for you to hear. What's going on here? OK. So if you listen to kind of the root note of what's happening here, we've got seven notes that are filling one octave, but they're clearly not 12 semitones. So there's some choices there about what that root mode is, what that root scale is. But then the other thing you can hear is that each note isn't playing a single note, but it's also playing a chord. So I think four, I think I have four notes in each chord happening here. There's not really a practical limit if you're playing a polyphonic synthesizer, particularly a software synthesizer. You can have really huge chords if you want. But I've got four here just because beyond that it gets a bit cluttered sounding. And the mode that it's in is, and you can see it here, I've got this mode names. This is largely code that I ripped from my MIDI modal keyboard that I made. There's a learn guide for that I can show you that has Raspberry Pi Pico and 21 keys. And so it is actually a grid, so a little more of that sort of technical isomorphic shape. But right now I'm using the mode minor, Aeolian. So if you listen to that chord, and unfortunately I just have to resave, so it'll take it a minute, if I move this to a major chord here, you can hear the difference from that to the minor. So there's one half step difference, semitone difference in one of the notes in there. And so what I have is this definition here of the different modes. So major minor Dorian, Phrygian, Lydian, Mixolydian, Locrian, use other ones if you want to. Those are the ones that I have. So I can pick any of those. And then inside of each of these notes that I'm pressing, it's picking a set of intervals for the chord that are just positions inside of that mode. So those are, I've got the root, the third, the fifth, and then an octave. And that's not like a third. Musical third, that's the third item inside of that list. So as you can see here, the third item in the list of a major chord is a fourth. And in the minor chord, it's a third. So those are the different modes that I have playing inside of those chords. The cool thing with these not being semitones is they actually make nice, rich chords upon chords if I play two of them at once. Or even three of them at once. So these are eight notes being played. So it's a lot, but it's not too bad. The sort of nature of that is going to change as I pick different modes. So let's go mix a litty in here. What's that? 0, 1, 2, 3, 4, 5. So if I do the five, and then I immediately type a six. Here we go. Play the same sort of thing. It'll have a different character to it. Has that more major sound to it with that final resolution there. So you can use them individually. Or you can use them in chords. And if you pick a sort of a root for the key that you want to play in, you set up the sort of intervals of the individual key's root notes. And you pick a mode that you like. You can then just kind of jam inside of a framework. And nothing will sound bad. Nothing will sound wrong. You can't hit a bad note. Obviously, it's limited compared to someone who's a real keyboard player. Has every key at their disposal, knows exactly when they want to play a, quote, bad note. But I don't have those skills. I don't have those chops. So for me, it's kind of fun to just have a little noodley. And you certainly get a feel of where you can return. It might make a certain amount of sense to put the root of the whole thing in the middle. That's pretty typical for isomorphic keyboards that I've seen. In fact, I wanted to show, if I jump to my browser here, this is just the Wikipedia entry on isomorphic keyboards. If you look, let's see, at this one here, you can see there are octaves running vertically. So if you look at the D, there's a D3 that's lower by an octave than the D4, which is lower by an octave than the D5. Its neighbors are all the sort of same intervals as if you went over to D flat instead of D. So this is a Casper Wikis, no relation, Wikis isomorphic note layout from 1896. So it is not a new thing. C Grover says, in jazz, you're never more than a half step from the perfect note. Yes, right. Actually, I had a jazz vocal teacher in college who was a jazz trumpet player. Everybody taught a vocal jazz improv class, and he taught us, if you hit a bad note, loop back around, play it again a second time so everyone knows you meant to do it, and then the third time, come around and actually resolve it to where you meant to go. And no one's the wiser, so you can flub it. Just remember what you flubbed and come back to it. And yeah, it's interesting to look at these. I wanted to show one I have on my iPad, but whatever, I can't remember the name of it, it must not have been updated for more recent iPad versions, iOS versions, because it just crashes a lot now. But it has a layout. There are a couple of these available. Some of them cost a couple bucks, six bucks. Some of them are free. But if you look at them on iOS, there are some nice isomorphic keyboards that let you really understand what it means to change the mode, change the route, look at the relationships of neighbors and how a shape can transfer around. Let's see, any plans to add a display for which cord you're playing or leave that to the MIDI software? Yeah, you know what, one thing I wanted to do was show, let me bring up the software I'm using here. Let's see, I'll add it. Quick, hopefully this won't crash, vital, this smaller. So this is the software I'm using. It has a little virtual keyboard at the bottom there, and you can see it. So if I just go to neighboring keys, you can see that the relative interval is shifting between those. And then if I do change, I'll just do this in the code, you won't see it. So I'm going to go to a major mode here. So if you look at that, arrangement of keys, now watch, one of them is going to shift, the third note you see there is going to shift to the left one when I change the mode to be minor, sorry, the second one here. So to answer your question, no, you can do a lot with light stuff, so especially for bigger things like a l'instrument or other larger backlit isomorphic keyboards, you can do a lot with color where you can see the note that's the root for the key that you're in is pink everywhere. And all of the, let's say, fifths are blue. And so you can see these repeating clusters and know if you want to go up an octave, or one that's the same color. A little harder to pull off on this little seven key keyboard. So my colors kind of don't mean anything other than I did make these octaves, both this sort of honey amber color. So that's an exact octave transposed of that. The other ones, I just liked the way they look. They don't mean too much. You could certainly do like a display of some kind, add a little readout, a little OLED display or TFT or something like that to this. I just am starting out with this really simple one. You can see I don't have any control for it. One thing I did with the modal MIDI keyboard was when I started it, it waited for you to enter the key that was your root and the mode. So that was a nice way to not add any buttons or knobs or anything, but just to hit Reset and then tell it by picking one of these keys. That's going to be the root. And then you had choices, the second set of choices was what mode you're in. So that's something I could put on this pretty easily. Or you could add a knob. If you added a rotary encoder, you could move your way through a couple of choices. Since we've got the little click encoders, that could be a kind of fun add-on for something like this. And Lamar actually said, hey, what about putting a button in the middle, but those tend to stand up pretty high and would make it kind of funny to navigate around this. And I like having the seven keys there. So I don't know if I'd want to lose one for a button. But you could get silly, not silly, you could get fancy with accelerometers and things like during startup, have it in one position or another to pick things, maybe have the six hex positions to pick a mode, and then you could also use that for pitch bend or CC or something like that later. Let's see, what other questions and thoughts do we have? Let me bring up the Discord chat here. Todd says, I think you can still refer to it as isomorphic, but lean into it being radially isomorphic instead of grid isomorphic. Okay, good, that's a good clarification. Yeah, put a gyro in it and rotation, let's see, change the root note, love it. Andy Callaway, I'm sorry, you said you're tone deaf, so maybe this is all incredibly boring to you, I apologize. And yes, the address for the isomorphic keyboard thing. Yeah, slide input on the side, yeah, you could definitely add some little UI bits and pieces. I'll probably, I'm gonna be working with Noe on a, sorry, I'm not showing it right now, on a little guide for building this. You can, it will just have a simple little case for it and you'll be able to use it for anything you want because this could be just a number, a keypad for macros, calculator for people who are dealing in seven digits only, I don't know, but you could use this for USB input as well as, USB HD as well as USB MIDI. You could also add, if you wanted to do sort of more conventional TRS MIDI, classic serial UART MIDI, you could add an output for that as well, not too difficult. You just gotta find two pins, or actually you're only outputting, you just gotta find one pin, I think we have a pin or two free. We also have STEMI QT on this QT Pi here, so you can add, if you wanna put a rotary encoder on there or something like that, just grab one of these guys here and plug that off into the side. Oh, thanks for, Charles B. asks, how'd you get the shape of the hex keypads? I bought them, but I wanted to show you the, let me find the, this is a great webpage, so the process here for these, I'm gonna put this link in the chat because I think it's really interesting. These were originally three printed during the development by the maker here, I think maybe as a resin printed thing, but these got molds made and are commercially available keycaps, and this is a great blog post that I put over in the Discord chat, I put it in the YouTube chat too, about the process for building these, that I think some links, or you can search for them, but I think there's some links up in the top about where to buy them. They are sold out in most places, I think there's one European seller, maybe in the Netherlands who's still got some in stock, I assume these will come back into stock, but Noe is making a 3D printable version of it, I think he might've found a model and cleaned it up or just built one, so he's got a 3D printed one that you'll be able to make for yourself if you want to. The, let's see, does this say where you can get them? Let me see, it was FK, FK Caps is the company who's selling these, or is making them, and then you can buy them at little keyboards, that's where I got them, or Split KB, and they are in stock, and I think they're in the Netherlands. They'll ship, I think they'll ship internationally, just cost a little bit, but they're very reasonable, they're something like, what, less than six pounds for 10 of them, I think it was $4.50 for 10 of them from little keyboards, and there's also this one, MKUltra.click, I think they are also sold out right now, oh gosh, maybe they're not carrying them anymore. If you click on little keyboards, you might be able, yeah, you can click on notify me, and have them. By the way, I don't know if it was a mistake, or they knew what I was up to, but when I ordered, I was able to order two packs of 10 from little keyboards, they didn't send me 20, they sent me 21, which is perfect, because I'm using seven per keyboard here, so that makes three of them, I'm sending a set to Noe, so he has a reference set as he's doing his 3D printed ones. So that was very kind of them, or an excellent fortuitous error that they accidentally threw one extra, I don't think it was an error though, so thank you, littlekeyboards.com, I don't know you, but you made me happy, thank you. All right, well, speaking of making people happy, I did wanna remind you that you can get 10% off, not there, but here in this store right here, hey, get yourself some reverse mount Neopixels if you want. Andy Calaway, you are a scene, I felt seen. Type in Honeycomb on your way out of the Adafruit store, and you'll get 10% off of your order. And I'll also remind you, if you order a bunch of stuff, there are deals to be had, so if your order is $99 or more, you're gonna get a free permaproto half-size breadboard, PCB, if you order $149 or more, you will get a KB2040, and I believe that time is running out on getting these limited edition pink KB2040s. They're gonna be returning to their black color soon, but if you get one now, either just buy it in the store or place an order of $149 or more and get your free one, it should be pink, and those are limited. You, by the way, get stacking freebies, so if you place the $299 order, you'll get a BBC microbit version two for free, you'll get free US ground shipping from UPS, you'll get the KB2040, and you'll get the permaproto, so all those stack. And I believe you can use the 10% off and still get this, you just have to clear, I think you have to clear that $299 if that's what you're going for after the discount. That's my guess, I don't know that for sure, but that's usually how those things work, right? Yeah, so honeycomb, type that in, that'll get you 10% off, and I think that's gonna do it for today, so thank you everyone for stopping by, it's been great hanging out with you. I am gonna try to finish up painting and adding the ports to the keyboard. You can see here, I've drilled out a couple holes on top, I'm gonna put a nice big USB-C panel mount port there, so you can plug in to there to power the thing and run your USB MIDI, and the USB, or rather the TRS MIDI will go there, so you can run classic synths. I may see if we can run it off a battery for those cases, so you don't have to be plugged in if you're just using it for TRS MIDI. I should be able to, I think we got four double A's in there, and I can also put that little boost in there if I need to, so probably get away without it though, I think we got away without it. All right, thank you everyone for stopping by for Adafruit Industries, I'm John Park, this has been John Park's Workshop, and I will see you next time, bye-bye.