Embedded - 442: I Do Like Musical Robots
Episode Date: February 3, 2023Adafruit’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)
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.
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.
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.
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
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
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
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?
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,
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?
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
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.
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
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
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?
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.
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
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
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.
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
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.
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
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.
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.
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.
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
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
31 whatever
kilobaud.
And it's,
you know,
and it still works great.
It was well-designed.
They have,
there's MIDI 2
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.
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.
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.
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?
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,
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
in a circle between them
and they were just
making more clocks.
Anyway.
Anyway,
okay,
so.
Infinite clocks.
I was asking
what takes in MIDI
and output sound.
So now,
all the things over there
that you have.
Mm-hmm.
Okay. Okay.
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.
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.
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
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
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.
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.
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
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,
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,
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.
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.
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.
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
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
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
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
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
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
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.
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,
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
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.
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
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?
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?
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.
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.
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
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
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
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.
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.
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
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
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
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?
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.
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
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
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
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,
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,
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.
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
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.
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.
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,
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
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.
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.
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.
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
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.
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.
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.
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,
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.
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
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.