Embedded - 442: I Do Like Musical Robots

Episode Date: February 3, 2023

Adafruit’s Liz Clark (BlitzCityDIY) spoke with us about MIDI, music, and tutorials.  Liz’s Adafruit Tutorials include MIDI for Makers CircuitPython Trombone Champ Controller Mini LED Matri...x Audio Visualizer  CircuitPython MIDI to CV Skull Liz sometimes hosts the Adafruit Show and Tell which is Wednesdays 7:30pm ET. Speaking of Adafruit videos, we mentioned the Fusion 360 tutorial on Snap Fit Cases. Liz’s BlitzCityDIY YouTube channel shows her building instruments including her mentioned Melody Maker. She also has many 3D printables and github repositories under github.com/BlitzCityDIY Christopher notes that there are browser extensions that allow a person to stop auto-playing GIFs. VCVRack is a Eurorack simulator for synthesizer modules. Sadly, Mutable Instruments has shut down. Transcript

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded. I am Alicia White, alongside Christopher White. We're going to talk about sensors and writing code and writing tutorials and making melodies. There's so much, and I'm excited to have Liz Clark as our guest. Hi, Liz. How are you? Good. How are you? Good. Could you tell us about yourself as if we met at NAMM? Sure. So my name is Liz and I have background in music technology and that's led me to dabble in electronics, programming, 3D printing.
Starting point is 00:00:42 And I document projects I'm working on on my YouTube channel, BlitzCityDIY. And currently I'm contracting full-time with Adafruit to work on projects and new product documentation. Which we will be asking about all of that. But first we want to do lightning round, which I believe you're familiar with. Yes.
Starting point is 00:01:02 Are you ready? I'm as ready as I'll ever be favorite midi command oh um pitch bend not panic favorite electronic apart uh led favorite chord progression um i mean you gotta do a classic one five four uh favorite adafruit tutorial um i the neopixel uber guide is pretty handy what is the best response to an adafruit tutorial that you've gotten that you've written okay let me rephrase this because it's phrased weirdly to an article that you have written, what? Nope, that's Yoda.
Starting point is 00:01:47 What is the best response that you've gotten to an Adafruit tutorial that you have written? There we go. I got it. English is hard. It was, I did a controller for the Trombone Hero game. Oh, yeah. And this wasn't a written response, but there was one night on show and tell a couple weeks after I'd written it, a guy came on with his kid and they had taken time of flight sensors and
Starting point is 00:02:11 done their own version of the controller and they'd follow along with my guide. And that was a really nice moment to see like folks using it, especially when I was with his kids. So that was the nicest. If you were an animal, which animal would you be? A cat. What is your favorite fictional robot i actually don't really like robots finally we found the person okay i must know what is it about robots that causes your you dismay um i don't i i i i guess the most obvious they're just not very human um and they just don't they i just don't connect with them i can't i don't really have a solid explanation um i'm also science fiction isn't my favorite genre so that's probably a little bit of that too has a lot of robots it does yeah yes all right do you have a tip everyone should know
Starting point is 00:03:06 um fairly basic but it was life-changing for me when someone pointed out to me it was always um have some solder on your soldering iron and before you power it off to preserve the tip so it won't rust out oh yeah that is that is. I actually have melted plastic on mine. That works about the same. Oh, it does? Fair. Also, please stop using my soldering iron. Your soldering iron. It is a joint soldering iron. You mentioned having someone come to Show & Tell and talk about a tutorial that you've written. You've been hosting show and tell more, haven't you? I have. We've had a rotation going amongst team while PT and
Starting point is 00:03:52 Lamore are out on leave. And then if they also have like something going on at night, we'll take over for them. Do you enjoy hosting the show? I do. It used to be a little terrifying, but I have a little post-it with the intro that I read off right above my webcam. And then that helps me kind of slide into it. But it's fun being able to talk to folks about projects, both people I'm working with and people from the community. And the only terrifying thing is sometimes you have no idea what folks are going to say. And you also have to keep everyone on time because it is a very solid window. Because usually at 8 p.m. there's the full live show. So there's a lot of things to juggle, but it is fun. And this is the Adafruit Show and Tell. When is it?
Starting point is 00:04:43 It's 7.30 p.m. on Wednesdays. That's 7.30 p.m. on Wednesdays at 7.30 p.m. Eastern time. And it's essentially an open mic in the DIY electronics maker world. What have been some of your favorite things to talk about? Recently, there was a regular community member, Mark mark gambler who came on and he actually took us outside with his phone to show this giant neopixel display uh that he had on his house and that was really cool whenever folks have like interesting camera setups like that and you can tell they've put like a lot of time into prepping it to be able to share. I always really enjoy seeing that. Your list of tutorials is extensive and you've done many recently for the less glamorous parts, the multiplexers and voltage shifters, MOSFET drivers. How much,
Starting point is 00:05:39 how much of writing the tutorial is writing code versus writing a how-to versus trying it out yourself or pointing to other Adafruit tutorials? Because there's a lot of commonality sometimes. Yeah. And the product guides are definitely procedural in that they all have kind of the same parts. You have the overview, which is basically the product copy with the hero images that the photo team does on site. And then the pinouts and the Arduino, CircuitPython code pages and the downloads page. And every product is just the procedure and getting the guide up is just slightly different. It depends on, you know, does it have a circuit Python library or does it have an Arduino library?
Starting point is 00:06:32 Or are we using, you know sometimes the first person really going through and making sure everything's working with the libraries and kind of gathering what folks will need when they actually have the sensors in hand. So trying to make sure that you're documenting everything in the right spots and not leaving anything out so that folks will be able to use it properly is the most important thing. And do you have a favorite type of guide to do? Do you prefer the ones that are sort of procedural and you just make sure it works versus the ones where you have to build something creative but under a deadline? It kind of depends on the day. And that's why I
Starting point is 00:07:27 like that I do a mix of the product stuff and the project things. Because if it's a day where I'm, you know, maybe have a lot of meetings scheduled or a lot going on, then it's easy to kind of jump in and out of the product guide. But the project guides are definitely a lot more freeing and you're able to kind of not do whatever you want, but in a sense, kind of do whatever you want. Like I was working on a guide this past couple of days and I decided that I, it was for Octoprint, so I wanted the case to be an octopus. So being able to do fun stuff like that is cool. But then on other days with the projects, it can be a little frustrating. Like I was working on a robotic lyre player, which is like a little mini harp, and I was having a really hard time with the mechanical design.
Starting point is 00:08:17 So it was really disheartening. So being able to then go switch gears to a product guide is nice. So being able to have the mix and kind of go back and forth is good. You mentioned the trombone guide. I've never played this game. Could you tell me about it? So I actually hadn't even heard about it until Lamore emailed me saying, try making a controller for this game. And it's this weird rhythm game, which kind of has some Guitar Hero vibes, which I did used to play a lot of back when I was a
Starting point is 00:08:53 teenager. But basically, it's Guitar Hero for trombone, where it's like standards for trombone, and you're sliding your mouse up and down like you would slide on the trombone to be able to hit the notes and pressing the space bar to hit them and so with the controller i'm using a slide potentiometer and i 3d printed a mini trombone shape um and then it's there's a button on the back of the controller where i'm sending us commands for the spacebar and yeah, it's a weird game. But it was fun to make the physical controller for it. It was a viral
Starting point is 00:09:33 sensation for a month or so. Yes. It's a very funny game. I haven't played it, but I've watched videos. Yeah. And several of your tutorials are music-based. One of the reasons I wanted to talk to you was I had a student in one of my classes that wanted to add music to his project. And it was hard, partially because there was where do you even start?
Starting point is 00:10:07 I kept suggesting MIDI over and over. I was like, go with MIDI, you'll be much happier. What would you suggest to somebody who really didn't know the options out there? I would also suggest MIDI because it's kind of a lightweight protocol um because it's uh just seven bits and it's been around for so long that it's fairly easy to get going and especially if it was like an embedded project like what your student was probably working on they could use uart or they could uh maybe do usb if there's supports on the chip. And there's just a lot of options because you can use it to control or you can use it to get input from another musical controller.
Starting point is 00:10:56 So the option is really endless, I feel like, with MIDI. Okay. So we've said MIDI many times. On the show, I'm sure those letters have come out before. But I don't think we've ever talked about what's inside MIDI. As you said, it can be UART or it can be USB. That's not what MIDI is. So what is MIDI? So it's a 7 bit communication protocol. And basically, it allows you to control music digitally. So if you've ever used a keyboard input with a digital audio workstation or other
Starting point is 00:11:39 music program, like you were using MIDI, and there's different messages associated with it, like note on, note off. So when you press down on a keyboard, you're sending note on. When you lift up, you just send note off. There's also different program changes and control changes for if you were turning a knob, you could send these values
Starting point is 00:12:04 and they could affect a synth or other thing in music. And there's also with MIDI, there's also a lot of kind of different ways to connect to it. There's the traditional like DIN 5 connector. And then there's also TRS connectors. And I have a weird relationship with the TRS connectors because there's TRS-A, which is the standard.
Starting point is 00:12:30 But before that, there's also TRS-B and the source and sink are swapped, which can be very annoying. So I try to avoid the TRS. And then, as you said, there's also USB. And then the really strange one, probably the newest one, is Bluetooth MIDI, which can have a lot of delays. But it can be really cool because you're controlling things over the air
Starting point is 00:12:55 that used to be really annoying to get hooked up to your computer. So it has its pluses and minuses. I just threw a TRS to Dyn adapter at least. Oh, the TRS just looks like a normal headphone jack. Yes. Okay. This I'm very familiar with. Yeah, which is cool.
Starting point is 00:13:15 Yeah, because you can, you know, wire up a cable like that and you're communicating with a synth. But the tricky thing is that there's the TRSA, which is now pretty standardized, but there's always the threat that it could be trsb um which uh has that source and sync swapped and i've i did a learn guide on adafruit where i was just um making these little kind of like midi input hats um for the little cuttpie boards. And I did one for TRSA, one for TRS-B, and then one for DIN 5. And making sure I had the wiring correct for TRSA versus B
Starting point is 00:13:54 almost made me pull my hair out just because it's so... It's the old UART. You're never going to get it right the first time. Yes, exactly. So MIDI is very old. It came about in the late 70s. And at its heart, it's a something, I think it's 115 kilobit per second or 115,000 baud serial protocol, basically. Like you can implement it over a UART, I think, right? Yes, yeah.
Starting point is 00:14:21 And that's when you're doing over UR, it's a 31-250 body. 31, God. Oh, no, it's the MIDI 2 is 150? Yes, it's very slow. 31, 31 kilop. Yeah. And you're sending commands. You said seven bits.
Starting point is 00:14:36 So these are all commands. And you mentioned pitch bend. And I remember there, and note on and note off. And it also tells you which instrument you're playing right now. Yes, if there's support for that, you can basically send a program change message and it will then, as a result, change the synth voice that's playing.
Starting point is 00:15:01 I remember we used MIDI in some of the children's toys I worked at on to generate, there would be music in, let's say a data file, because I don't want to explain. And then we would play the notes using a pretty simple output. And one of the songs, one of the things that I got to do was to make a song speed up based on user interface because it was MIDI and I could interpret the notes to take less time. And so we got music that could speed up without pitch shifting because I knew what the pitches were because of MIDI and all I had to do was mess with the time. And so one of the really neat things about MIDI is that it is that simple. It can be enormously complex. plex but if all you want to do is play a tone or a series of tones or 88 keys worth of tones you can start there and then you can start getting into like the attack and all of the
Starting point is 00:16:16 other parameters that you can have but initially it's just on and off yeah Yeah. Yeah. The thing that always surprised me about it is it's still going. Like, you can buy a $10,000 Moog top-of-the-line synthesizer and it's got a MIDI port on the back and it's putting out
Starting point is 00:16:32 31 whatever kilobaud. And it's, you know, and it still works great. It was well-designed. They have, there's MIDI 2
Starting point is 00:16:40 that's sort of been proliferating, I think, slowly in some other extensions. But basically, everything still has the original MIDI on it if you need it. Yeah.
Starting point is 00:16:49 So there's always the MIDI input, which is always called the MIDI controller. And then it goes to something that makes sound. Yes. So it's going to go to either a digital audio workstation or DAW or another hardware synthesizer. Or sometimes it can also, you can almost be like controlling something else. Like I've, although I don't like fictional robots, I do like musical robots. So I've had a MIDI control motor positions. And so then it's making acoustic music, but you're controlling it through MIDI.
Starting point is 00:17:28 I think you can control lights with it too, right? Or is that something else? You can. Yeah, you can. And Unity also has really good MIDI input support. So folks will often use that for their live show visuals. They'll be able to kind of take in their, the MIDI control that they're using live to do their music and have it also be controlling their visuals behind them.
Starting point is 00:17:46 Okay, so we're going to call the thing that takes MIDI and output sound a synth. Yes, yeah. Okay. Sorry, I'm surrounded by synthesizers right now, and I'm not sure which ones fall under that category. Can you point to the ones? Some might even be both. What would you like me to point to?
Starting point is 00:18:05 The things that take MIDI and make sound. Well, everything takes MIDI, sadly, because even things that are controllers can be controlled up here. So like I have a sequencer here and you can plug MIDI into it to have something else give it its clock or to tell it to change patterns,
Starting point is 00:18:24 even though it's controlling all the synthesizers. So it's not quite so simple. Have you ever had a problem with that? I have never not had a problem with computers or synthesizers. Sorry, he was working on a project and he ended up having two clocks. I couldn't be out with a tempo, it was four times what I was setting and I was like, why does this keep going so fast? And finally I just, yeah, anyway, I had two controllers going and they were both for, I think the clock was going
Starting point is 00:18:48 in a circle between them and they were just making more clocks. Anyway. Anyway, okay, so. Infinite clocks.
Starting point is 00:18:56 I was asking what takes in MIDI and output sound. So now, all the things over there that you have. Mm-hmm. Okay. Okay.
Starting point is 00:19:08 This takes in MIDI and output sound. That does. That does. This does. Do they output sound through a speaker or through a headphone jack or? Most of them have line outs. Okay. So headphone jacks or it can go to a speaker.
Starting point is 00:19:22 Headphone jacks are usually amplified. Line outs are usually low level. Okay. Yeah. Okay. I'm just thinking about an embedded system. What you're saying is that I would then need to have an amplified speaker attached to my widget. And a DAC, presumably, to make the sounds.
Starting point is 00:19:41 Oh, see, I thought when we said hardware synthesizer... Oh, I was saying if you're making your own synthesizer, you need something to wiggle the signal. You take in the MIDI and then you PWM something out, whether that's a motor or
Starting point is 00:19:59 some sort of note or something. Okay. I'm sorry, Liz. Did you have a correction in there? No, I think that's good. That's good. What is CV? CV is control voltage, which is separate from MIDI. And that's used a lot in Eurorack synthesizers, which is a very... I'm looking at my setup right now, and it's a plate of spaghetti, which I know folks often worry it will turn into, and I can confirm it does. But it's great spaghetti. And basically, control voltage is... I like to think of it as kind of
Starting point is 00:20:41 musical circuits, because you're sending different voltages to control different parameters. And it usually ranges between zero and five volts, which makes it very DIY friendly as well. And you can use MIDI to then have a little module or box or something to then affect control voltage. There's a lot of projects like that. And control voltage was what everything used before MIDI, right? I mean, it's all you had.
Starting point is 00:21:11 Yes, yeah. Yeah, like if you look at the old synths that would have a bunch of wires sticking out, that was all control voltage in the 60s and 70s. Okay, so does this mean that the only thing I can really get from control voltage is the weird spaceship sounds? Yes and no. You can kind of manage the spaceship sounds to be more controlled because there is a parameter called 1V oct or 1 volt per octave. And that's set voltages that correspond with pitches, as we would think of them.
Starting point is 00:21:47 And so you can send those to oscillators and have them sound like in-tune things that don't sound like spaceships floating aimlessly through space. Okay, how do I get from control voltage to something I can hear? Assuming you're not going through a vibe motor, which is the only thing I can think of right now. You'd play happy birthday with a little vibe motor. Or does control voltage go back into the synth? Control voltage is kind of being sent around the synth to affect the sound. So if you were to just turn on an oscillator, it would probably just be outputting one tone, whatever its base tone was, um, tuned to. And then... A440. manipulators to the different inputs on the oscillator to kind of turn it on and off with a gate or have one be oct be changing the pitch or LFOs be changing how the timbre of the sound
Starting point is 00:22:53 ends. So that's how you would use control voltage to affect the synthesizer. And that's how I go from having a pure sign to having an instrument sound. Exactly. yeah. Are there other things I need to know about making... So now we've gone from making something that can make music to making something that is playable as an instrument. Is that right? I mean, before I was talking about just play the music,
Starting point is 00:23:21 and that's just you get the MIDI, and you use some tool you already have to play the audio. But now we're talking about we have the control voltage, we have the MIDI, we may not be using them together. We also have at least one clock input that can let us be the bass sound. Is this how you build a hardware synthesizer? It's a way to build a hardware synthesizer. I tend to think of MIDI and control voltage as kind of separate worlds,
Starting point is 00:23:56 just because their applications can be kind of different. And MIDI controllers are a little bit more straightforward in that you can take it, and if as USB, know you plug into your computer and you open up your software and you're like you're going uh whereas with control voltage that happens more in the hardware sense where you have like multiple hardware sense presumably or maybe even a euro rackorack synth setup. And you kind of have a more involved process then for making the music. And it's a little bit more hands-on and kind of infinitely expandable. Okay. Okay.
Starting point is 00:24:40 I think I understand MIDI is for more controlled and CV is for less controlled. Yes. You mentioned the Eurorack, and those are the modular synthesizers that fit into the Eurorack. Not, not, not. Yeah. Eurorack stands for Eurorack. Sorry, I was going to make a self-referential thing, but that was too hard. Yeah, I already caught that one. Thanks.
Starting point is 00:25:10 And as you mentioned, and as Nick, one of our listeners mentioned, getting a Eurorack is like getting a pet of a thousand snakes all tied together. That's very accurate. But there's also VCV Rack, which is the virtual version? Yes, yeah. And that's open source and free for folks. And it basically allows you to experiment with the Eurorack format without a lot of space and time and money investment.
Starting point is 00:25:48 Have you played with it? A little bit. I've actually found it difficult to get started with. And I don't know if it's that I'm just being impatient and trying to take what I know I've done with hardware and make the program do that without researching too much on how that would actually work, which I'm often guilty of. But my colleague, John Park at Adafruit, has done a lot with VCB Rack, and he's even done some projects with it. So it's definitely very cool and definitely, I think, a good alternative to actually having a hardware Eurorack set up. I have a question about Eurorack, things from Tom. But first he wanted to say
Starting point is 00:26:37 that the Adafruit Discord is amazing and that it's wonderful. He can get support there and he tries to buy the Adafruit boards whenever possible because there's a huge gulf between support and helpful support. And Adafruit is on the helpful side. Oh, thank you. Okay, but now what he really wanted was a shopping or a product request list as he wanted kits for the Eurorack modular synths with parts and also a breadboard area and configurations for front panel controllers and IOs. Do you have a tutorial
Starting point is 00:27:14 coming up or in mind or do you want ideas? I did do a midi to cv project and jp um who i mentioned uh also does uh some euro rack projects and then um there are for breadboarding there are little pcb um kind of breadboard um friends i think they're even called friends from... Oh, I'm blanking on the name. What happens if I type in EuroRack friends? Don't know. Mutable Instruments, that's who. Oh, yeah. Yes. So Mutable Instruments has these breadboard-friendly breakout PCBs that are open
Starting point is 00:28:00 source, so you could order them from Osh Park or such. And they have spots with documentation on how you'd place the components. And those are really handy if you're breadboarding a synth. And there have been some folks I've come by to show and tell, actually, in past episodes, that I know one person had actually taken one of the kind of breadboard PCB breakout things that Adafruit sells and mounted it into their Eurorack and had things breadboarded there. So I don't know that there's plans for Adafruit specific kits for Eurorack right now, just because it is kind of a niche thing and as a rabbit hole. But there's definitely a lot of resources out there for ways to make it more prototype-friendly
Starting point is 00:28:50 and kind of tinkering-friendly. I should note that Mutal Instruments announced that they're winding down operations this year. I think they're going to stop in June or something like that? I believe so, yeah. Okay, some questions from terence about software synthesizers instead of hardware ones digital soft synths um do you think that those are missing quality compared to the analog hardware synths or is it just that people like the feel of physical knobs yeah i think it's more
Starting point is 00:29:27 of a tactile thing because um there's a program called reason uh which is a daw that lets um that i've used a lot in the past and um the sound quality is great um i know there's probably some folks that are a little bit more persnickety, but I don't really notice a sonic difference between the hardware sense and the soft sense, just with the way that we also take in music nowadays, usually online. But for me, I've kind of switched to hardware because I do like that tactile input. And also, in general, that's why i've kind of started doing things with circuit python stuff was i liked that you had this software idea and it was coming out into hardware and that makes sense to my brain so are you tempted to send it back to software
Starting point is 00:30:19 and just make it so that you have the tactile responses, but then just put it back to a place that already knows how to play audio? Yes. Actually, one of the first projects I ever wanted to do was actually do a hardware interface for one specific synth in Reason. And I recently came across the old drawing I did for that five, six years ago. And I might revisit that at some point. It would be all MIDI and it could control each parameter of that soft synth individually. And you mentioned you had done a hardware synth, an analog synth.
Starting point is 00:31:00 Was that the one you housed in a skull? Yes, yeah, that was the skull. Why a skull? Yes. Yeah, that was the skull. Why a skull? Why? Well, in general, I've noticed that if I am designing a case, I want it to be fun. And so I've been making them out. I made like a case for the Pico W, a cow,
Starting point is 00:31:22 because of the pie cow joke with the board name. And the skull, I just liked it aesthetically. And I liked that then the two jacks could be in the eyes. So you were plugging into the eyes, which might sound a little upsetting, but I promise it's like kind of cute. We'll have a link to that tutorial and the MIDI for Makers tutorial as well in the show notes. But one of the things that you do is you do try to make your cases interesting. What tools do you use to make the 3D printing models? So I design in Fusion 360 and purely just because those are, when I was looking for tutorials on how to get started, those were the ones that came up. And I like that you can make the parametric
Starting point is 00:32:09 in that you can change measurements on a case and it will adjust. And then I 3D print those cases. And I try to use as much color as possible with the filaments as well. There was one project I was working on last week that I printed every, there were 16 identical pieces, but I printed eight of, in eight different colors, so it would be a rainbow.
Starting point is 00:32:37 And yeah, but mainly 3D printing is how I approach the cases. Does Fusion 360 still have a free version? It does, yeah. It's actually, I think it's called the Form Makers. You do have to dig a bit in their site menu
Starting point is 00:32:53 if you're downloading it for the first time, but it is still available. There is a design limit, though. You can only have like 10 open designs, so you have to change which ones are editable but for most kind of smaller projects like that's fine but you can archive them and then bring them back you can yes yeah they're still there they don't they don't disappear um i'm constantly juggling between which ones are editable and which ones aren't uh chris you've been making some more cases. Do you have any questions?
Starting point is 00:33:26 I just, I want to make... So for work, I find myself having to make enclosures for things often or mounting things. And I have dabbled in CAD and I always get to the point where I got something that's really close. But what I really want, I really want to take the thing I'm enclosing and I want to throw it into a CAD program and say, make me an enclosure and put these holes here. Like physically throw it in?
Starting point is 00:33:53 Yes, well, at the end of the week that's what I end up doing. But I just I find, so I've tried Fusion and I liked Fusion. It took me a while to get into it. And I managed to do some stuff that kind of worked. And then I think it kicked me out of my hobby account for some reason.
Starting point is 00:34:12 It said your subscription is over. And then I couldn't figure out how to get back in. So I was in a hurry. So I switched to something else on Shape. Did that for a while. It was similar to Fusion 360 and did some stuff in there. But then I found some stuff for OpenSCAD that did kind of the automated thing I want, but not quite. And then there's FreeCAD.
Starting point is 00:34:29 And basically, I've used every program, and I don't know how to do any CAD at all because I've been doing shopping for which program to use. But is there a way to get from zero to I need to make a simple, stupid, non-aesthetic box that mounts to something with these parameters. I think the closest to that that I'm aware of is my colleague, Nehru, has a really good tutorial on doing SnapFit cases. Oh, okay. And there's kind of, when he begins his tutorial, he has in there all the different measurements you'll need. And when you're following along, it is truly a box with a lid. And so if you follow along with that, you'll be able to then adjust. And you could even keep that model as a file and then go back and edit it for the type of box you would need
Starting point is 00:35:25 for different designs. So that's probably as close as I'm aware of. That is the thing about CAD. If you spend time trying out all the different ones, you never actually get familiar with them. And that's why I'm still on Fusion 360, even though they've been slowly
Starting point is 00:35:42 chiseling away at the more affordable options, because and Fusion 360, even though they've been slowly chiseling away at the more affordable options because it feels too scary to jump to another program. You almost get kind of trapped. Well, and they're all very, very similar in dangerous ways that you think, oh, this is just, and then no, something subtle about the way they approach things is just completely different, even though they look the same
Starting point is 00:36:02 and they have the same kind of, okay, sketch to extrusion to whatever kind of model right uh something doesn't work the same and then you're kind of yeah technology is the worst isn't it though uh okay changing subjects uh do you can you tell us about your new project melody maker yeah um so modular melody maker is this uh kind of long-term modular synth uh project that i'm working on uh where uh you know we talked about how with modular your accents like you run the risk of having it sound like a spaceship that's just floating in space um uh but I have a music theory background, um, playing more traditional music like guitar and things.
Starting point is 00:36:50 And I found I was trying really hard to bring that kind of sonic control to your rack. And you, it was hard to sync different modules that were, could like tune your, uh, oscillators so basically what i'm working on is a four inputs four outputs module but i'll have it as kind of like a a desk box where i can bring in gates or random waveforms to the melody maker and then output tuned waveforms. So I could unlock them to tone.
Starting point is 00:37:33 So I could have like one chord on one channel and then a chord that matches nicely on another channel and kind of have a central control to control the pitches of the modules in my system. Is this like an auto-tuner for voices, but for synths? Kind of. That would be one functionality would be a quantizer, which is where you take kind of a random waveform and you say only outputs um this uh this voltage uh so you can take in just a random sine wave and say i only want it to be on a d and an a and it will then output it that uh output that through the DAC uh and then another method that i'll have in the box is being able to take a gate in to trigger notes in a set melody. So, you know, if I wanted it to be like random arpeggios or things like that, and there'd be like modes and it could set those out through the channels and it would all be, it's all
Starting point is 00:38:38 coded in circuit Python. How far along is it? It's going pretty well so far i have the four in four out quantizer right now and then next up is going to be doing the gate in and setting up um different kind of preset melodies um that could trigger and then as i was working on it i realized it should probably also take in midi everything should take in MIDI. So why not just add it in? And is this a personal project or is this an Adafruit project or is there not as much separation as I think? This is a personal project. There is a pretty decent amount of separation
Starting point is 00:39:22 because you kind of have to, when you come up with a project and you're thinking about whether or not it should be a learn guide it has to be easy enough to describe to folks that they'll get it, which I feel like immediately the modular melody maker loses
Starting point is 00:39:39 on that. And then you also have to be able to make it reproducible with steps that folks can follow. So when I came up with this idea, I knew immediately this was only going to be personal. And then I'll save other fun things for the learn system. How do you... So you work full-time at Adafruit. Yes. How do you find time to work full time at Adafruit. Yes. How do you find time to do additional electronics outside that?
Starting point is 00:40:11 I don't do it as much as I thought I would initially, because I do like to, after the workday, do something that is completely separate from technology. Like I knit and I do some woodworking. So it's mainly weekends if I feel the urge to work on something electronic that isn't work-related. And for the modular melody maker in particular, I do want to have that done um for my own like music making uh so i've been kind of documenting the the build logs of it on my youtube my personal youtube channel and that's kind of kept me motivated and kind of working on it in little pieces which then also makes it feel manageable uh when i'm uh thinking about working on it but I may have been tinkering with electronics and code all week for work. It's hard to have the balance. It is.
Starting point is 00:41:11 I really meant to do some coding this weekend, and I'm going to have to admit it's not going to happen, even though I want the results. It's only Saturday. No, no, it's not. It's not. No, sorry. It is. day no no it's not it's not no sorry you scared me for a moment thinking i had somehow added an
Starting point is 00:41:29 extra day sorry i actually don't know what day it is it's okay um okay so i have a question that probably you should not have to answer but um some of your tutorials had just pictures of the boards. These were the product introductions. And the GIFs didn't move. And it was so nice. Does anyone else complain about the moving GIFs on Adafruit, or is it just me? I believe it's pronounced jif yeah if you want to see me turn into a little stressed baby ball of unable to do anything
Starting point is 00:42:12 just pull up the adafruit page where two gifts are going at the same time and i am it's like catatonia inducing yeah it's too much movement movement. I haven't heard any complaints. But in general, I have a similar reaction to GIFs. I don't want too much movement happening. So if I have a tutorial that does call for a GIF, which sometimes you do need one just to kind of demonstrate movement. Otherwise, it's hard to illustrate to folks what the project is um i tend to limit it or make it a not very flashy gif um thank you from the bottom of my heart thank you the more is going to be so mad uh okay so let me see you had questions for us yes uh let's see do you want to ask them or do you want me to ask them i guess that would be what i can ask um so where you're both professional
Starting point is 00:43:17 embedded engineers um how do you view programming languages like circuit python and micro python arduino um do you think of them as just stupid, junior, not real coding, or do you think they have value for folks learning or actual applications? Do you want me to take that? You're the last one who used CircuitPython,
Starting point is 00:43:38 which I think was very recently. I do not think it is junior or beneath me or beneath anyone. I've quite enjoyed that. I've done some personal projects where I've played around with CircuitPython and I quite like it. My perspective lately has been, since I do professional embedded work, professional embedded work is often painful for a variety of reasons and hard. And I often feel like, oh, well, if I'm going to do a personal project,
Starting point is 00:44:05 I should use those skills, right? But it's still really, really hard, you know, setting up tools and getting bare metal stuff going or whatever and using HALs and stuff. And most of the time I just want to make the thing that I want to make. And so I've just been, yeah, reaching for CircuitPython and playing with that.
Starting point is 00:44:22 And it's very relaxing and it does what I want. I mean, there's no reason to use anything else for something that, unless there's a cost reason, like, oh, if I'm going to sell 20 million of these, CircuitPython might push me toward a micro that I can't afford. Or there's
Starting point is 00:44:40 a performance reason. I can't do the thing I need to do. But that's rarely the case with personal or hobby projects or low-volume't do the thing I need to do. But that's rarely the case with kind of personal or hobby projects or low-volume things, so I'm quite liking it. I think I first started playing with it a few years ago, and it had less support for some things. And when I most recently tried to use it, I was like, this is incredible.
Starting point is 00:44:57 It takes me a few minutes to do stuff that bogs down a lot with development with an ST know, with like an STM32 in the HAL and, you know, getting I2C working and all this stuff. It's just, it's quite pleasant. So yeah, I've really enjoyed it. I think more people should reach for it first. I'm not convinced it's ready to be shipped on 20 million products that need over-the-air updates and high reliabilityreliability systems.
Starting point is 00:45:29 No. But I definitely don't look down on it. In fact, I mean, if it encourages a few high school students with, I mean, you get a definite rush when things work. Yeah. And I love the fact that these are straightforward enough and there are enough tutorials out there that you can develop as a 10-year-old and get something pretty cool out of it. And that means that it's an excellent stepping stone towards going to see more things. I don't know that you could go from CircuitPython on a robotics team in high school to professional development, but I'm such a snob about that, and that's my snobbery,
Starting point is 00:46:21 not necessarily anything other than they just don't know enough yet. Oh, what don't they know? I mean, it depends on what you're learning and how you're writing code, because interrupts are there. And well, part of the problem, I'm going to flip it around. There's concepts in CircuitPython that are more advanced than anything that we do with standard embedded development in C. There's async stuff happening with interrupts and those things which are much more modern and we don't have those. And so it's kind of a flip side thing
Starting point is 00:46:52 like where somebody could come out of using CircuitPython a lot and be like, where are all these modern concepts? Oh my God, yes. I mean, I have been flipping back and forth between a Python simulator and a C++ implementation of something, trying to make both work.
Starting point is 00:47:08 And I mean, I was like, oh, it's C++. There'll be some nice tools and I can finally use maps. And in Python, I have this gigantic map of commands to function pointers, or commands to functions. They aren't really function pointers in Python, but in C++. And it totally doesn't work in C++. All these things, the map didn't work, the list didn't work.
Starting point is 00:47:33 I had to just, it was just so painful. And the fact that we were using C++98 didn't occur to me until far too long into the project. So some of those pains probably have gotten better. But one of the problems with working with CircuitPython or Python or MicroPython or even Arduino is that you get used to that level of simplicity and having it work and not having to fiddle with some little bit in the 12th register. So, yeah, I think they're great. I mean, I know Arduino was partially developed to allow artists to work in technology things. And that, I mean, CircuitPython, Arduino, MicroPython, they all allow that.
Starting point is 00:48:24 And it lets more people be artists instead of having to be an engineer in order to make lights blink. Python, Arduino, MicroPython, they all allow that. And it lets more people be artists instead of having to be an engineer in order to make lights blink. I mean, nobody's getting an award for how hard something was when it could be easy. Yes. Right? I mean... Well, I mean, some of my origami could win that award. In the end, it's super easy, but i just didn't know until i got there thank you for answering that because it like with the circuit python community and it can i'm always curious how other folks outside the community are viewing it um that are in
Starting point is 00:48:59 other programming spaces so it's interesting to hear mean, we tend to work on things that are at the edges of cost. The constraint for us is cost. And CircuitPython takes more processing power and more RAM than running bare metal. A lot of projects we work on, at the end of the project, there's four bytes of RAM left when we're doing bare metal C. And so they're paying for our time in order not to pay for that cost. They're saving 20 cents a part by paying us a lot more. Hopefully not.
Starting point is 00:49:36 Or like, I'm actually working on a big Linux system, so that doesn't qualify for CircuitPython. And you're working on a big Linux system. Oh, I'm writing in Python. Python, Python. Oh, right. Yeah, but I'm doing machine learning stuff, and that's a totally different world. Sometimes. Sometimes not so much.
Starting point is 00:49:57 How much CircuitPython and AI on the edge? Have you worked with any of that, Liz? I haven't, but my colleague Melissa has done some stuff with Python on Raspberry Pi doing the AI things. CircuitPython doesn't have any of the AI things yet. You should talk to Edge edge impulse and combine them. That would be awesome.
Starting point is 00:50:27 That would. Liz, thank you so much for being with us. Are there any thoughts you'd like to leave us with? I, where I share a lot of projects online and everything, I guess, and it seems like it would kind of go without saying,
Starting point is 00:50:44 but I guess just, you know, before you leave a negative comment for someone, keep in mind that there's a person behind that. And just be kind to people when you're interacting, even if it's virtual. It's a good thing to remember. Our guest has been Liz Clark, author at Adafruit. You can find Liz as BlitzCityDIY on most social media. Thanks, Liz. Thanks so much.
Starting point is 00:51:12 Thank you to Christopher for producing and co-hosting. Thank you to our Patreon listener Slack group for questions, which you can join if you would like to go over to Patreon. Also, thank you for listening. You can always contact us at showatembed embedded.fm or hit the contact link on embedded.fm. And now something to leave you with. This is from
Starting point is 00:51:31 10 at mastodon.lol, who shared this fun fact with us. People in the old west used to attach lanterns to their saddles so that they could follow trails home easier at night. It wasn't GPS, but it was satellite navigation.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.