The rant and the love letter
S03:E22

The rant and the love letter

Episode description

Tod and Paul discuss a MIDI chip, an epic rant, a love letter, and more.

Follow the show on Mastodon or Bluesky.

00:00 Welcome

00:17 SAM2695 General MIDI chip

3:51 Supercollider and Supriya

5:47 The STM32 rant

12:18 A love letter to embedded engineering

16:10 Alternate music keyboard layouts

20:09 Spintronics

22:47 Wrap-up

Download transcript (.srt)
0:02

Welcome to The Bootloader, I'm Tod Kurt.

0:04

And I'm Paul Cutler.

0:05

The

0:06

show works like this.

0:07

Tod and I have each brought three things to share,

0:09

which we'll chat about for a few minutes,

0:11

but no more than about five.

0:13

For detailed show notes, links and transcripts,

0:15

visit thebootloader.net.

0:17

Tod, what's your

0:18

first one for us?

0:19

All right, so you know my continuing quest

0:21

to make microcontrollers act like synthesizers.

0:24

Well, what if there was a single chip

0:26

you could add to your circuit

0:28

that you could talk to with a single serial wire

0:30

that not only gave you a synth voice,

0:32

but a 64 voice synth with 128 different sounds,

0:36

including piano, strings, bass guitar, a full drum kit,

0:40

and they can all play simultaneously, it's multi-timbral.

0:43

And it can play different sounds on different MIDI channels

0:47

and you can change the sounds

0:48

with MIDI program change messages.

0:49

Oh, and it also has audio effects to apply to those sounds

0:52

like EQ, reverb, and chorus.

0:55

and it has a mic input that you can treat with those effects.

0:59

This thing is bonkers.

1:00

It's called the SAM2695,

1:02

and it's a full General MIDI synthesizer on a chip.

1:06

You may remember General MIDI or GM

1:08

from PC video games in the '90s,

1:11

where if you had a special Sound Blaster

1:12

or an outboard GM MIDI module,

1:15

your games would have much more cinematic music than normal.

1:18

I remember playing "Star Wars TIE Fighter"

1:20

on a friend's computer that had one of these,

1:22

and man, it felt like I was in the movie.

1:24

The SAM2695 chip is from a French company called Dream.

1:28

They seem to specialize in these one-chip solutions

1:30

to many music hobbyist needs,

1:31

like keyboard synthesizer chip, USB audio interface chip,

1:35

and 81 voice piano chip.

1:38

Their SAM2695 is an earlier effort

1:40

aimed at really low cost applications.

1:42

It's around $4 in quantity, it seems like,

1:44

when I'm looking around on Alibaba and stuff,

1:46

and requires just a handful of support components,

1:48

like just an oscillator

1:49

and a couple of capacitors and resistors.

1:51

It can be completely controlled

1:53

by a single logic level MIDI input serial line,

1:56

making it really easy to embed.

1:58

And in fact, you can get some pre-made modules

1:59

that use this chip right now from Seed or M5Stack.

2:02

The Seed one is called the Xiao MIDI,

2:04

the M5Stack one's called the MIDI Synth with Speaker,

2:07

and they make another one called the MIDI Unit

2:09

with MIDI In/Out.

2:11

And if you'd like to learn more about this chip

2:13

and one of the M5Stack boards,

2:15

Kevin from DIY Electro Music has a great series of articles

2:18

using this, the M5 stack version, with a cutie pie Xiao board.

2:23

Kind of just to show you how little you need in terms of CPU to actually control one of

2:26

these.

2:27

On Dream's website, the 2695 is marked as "not recommended for new designs," but it

2:33

seems like that's not stopping the above companies.

2:35

I wonder what will happen to the above products if this chip really goes away.

2:39

I don't think they're working off a copy of the chip, because it's a pretty complex thing.

2:42

I hope this chip continues to be made forever, because it's so cool.

2:47

I've got the M5 stack versions.

2:48

I've been playing around with them for a couple of days.

2:50

They're super cheap.

2:50

They're about 12 bucks for the one with a built in speaker and $14

2:54

for the one that has the actual MIDI ports and an audio output jack.

2:58

And there'll be links to all this stuff in the show notes.

3:00

Yeah, I was surprised how cheap they were.

3:01

I mean, you're talking 12 to 20 bucks for the two or three ones

3:04

that you link to it.

3:05

Yeah, yeah.

3:06

For like a fully built thing with a little little cable,

3:08

you can just plug into your under your breadboard or into your circuit.

3:11

And so what the heck, man?

3:13

It's all this struggle that I've been putting on for the last several years

3:16

of making synthesizers running in the microcontroller,

3:19

we could just like farm it out to a little, you know, side chip.

3:23

You have to have a whole new tips and tricks page just for

3:25

that chip.

3:27

Yeah.

3:28

Well, the thing is, like, General MIDI has been around since the like

3:32

late 80s, early 90s.

3:33

So there's a lot of precomposed music that just runs on

3:37

that assumes that the general MIDI sound set.

3:40

And so one of the initial things might be to just have a simple MIDI player

3:44

that reads MIDI files off an SD card

3:46

and just sends the MIDI messages out to this chip

3:48

and see what it sounds like.

3:49

I bet it would sound pretty cool.

3:50

I bet it would.

3:51

(Tod laughs)

3:52

All right, so what's your first one this time?

3:55

My first one feels like I'm trespassing

3:56

in your territory, Tod.

3:58

(Tod laughs)

3:58

I just learned about SuperCollider,

4:00

which is a synth engine that's been around since 1996.

4:04

So I'm guessing you've heard of it.

4:05

Oh, yes.

4:06

SuperCollider has three components,

4:08

SC-Synth, a real-time audio engine implemented as a server,

4:11

SClang, an interpreted program language that acts as a client to the server that is similar

4:16

to Smalltalk, and SCIDE, an editor for SClang with an integrated help system.

4:22

The server and client communicate using Open Sound Control, or OSC.

4:26

I looked at some of the SuperCollider code examples, but couldn't wrap my head around

4:30

it at all.

4:31

The reason I'm bringing up a synth engine that's been around for 30 years now is because

4:35

earlier this year, Andrew Clark thankfully wrote a Python API to SuperCollider he calls

4:40

I hope I pronounced that right.

4:43

And then he wrote a dozen examples and published them on GitHub.

4:46

They include an arpeggiator, an LFO, drum sequencers, and more.

4:51

Then he takes it to the next level.

4:52

He created a subreddit where he explains each demo, including an introduction to the concept,

4:58

code for each demo, and then a walkthrough.

5:01

Knowing a little bit of Python, I was able to almost wrap my head around the concepts.

5:05

And if Python isn't your thing, there's also APIs for JavaScript, Haskell, and more.

5:10

That's really interesting.

5:11

Because SuperCollider has been around for so long and because it's a programming oriented

5:15

thing, I've been aware of it and I've bounced off of it like a half a dozen times trying

5:21

to write stuff in it.

5:23

And I just never been able to because it feels like a research project that turned into an

5:28

open source community from like 40 years ago or something.

5:34

So it's kind of just got a different shape than what I'm used to.

5:39

But the Python interface looks pretty reasonable, you know?

5:42

So hey, lots of really cool sounds have been made with SuperCollider.

5:46

What's your next one for us?

5:47

All right.

5:48

I'm going to rant about STM32 development tools.

5:52

Now realize, I'm a make file and text editor guy.

5:55

My debugger is print statements, pin toggles, and oscilloscopes.

5:58

I've developed for just about every low-cost microcontroller except the STM32.

6:04

Now for work reasons, I'm about to get into the STM32.

6:07

I started the dive thinking it'd be similar to the other ARM-based CPUs that I've worked with.

6:11

I quickly find that it seems the majority of people are using ST's collection of IDE tools.

6:16

Oh no, vendor required IDEs.

6:19

You know what's worse than trying to reuse Arduino to write microcontroller code?

6:23

Trying to use Eclipse to write code.

6:25

What's worse than that?

6:26

Using a vendor's wrapped version of Eclipse.

6:28

And worse than that?

6:29

A vendor-skinned Eclipse that sub-apps that run in entirely different Java VMs to configure the chip with a GUI.

6:36

Worse than that, the only build for these tools is for Mac OS is Intel, so it runs an x86 Rosetta emulation.

6:44

Thus a keystroke you type goes from native code to emulated x86 to Java VM to Eclipse GUI to vendor wrapper and

6:53

finally to your screen. To say it slow is to be kind.

6:58

On top of all that, it seems like everyone in the STM world relies on this dang GUI to configure the chips.

7:05

So I kind of blame Arduino for this situation

7:09

Before Arduino programming microcontrollers was like this. It was a real pain

7:12

It was Windows only using proprietary IDEs written in Visual Basic invoking proprietary compilers all of this costing thousands of dollars

7:20

Just getting to a blinking LED would take you weeks

7:22

But around in 1989 AVR GCC and AVR libc was created by some kind hackers a fully open source

7:29

Compiler suite for the very nice at Mel AVR microcontroller chips

7:33

Of course, Atmel wanted nothing to do with this, but everyone loved it.

7:37

And when graduate student Hernando Bargan created his wiring thesis project in 2003

7:42

by smashing AVRGCC together with a hacked version of the Processing IDE, the beginning

7:48

of what we now know as Arduino was created, a fully open-source, cross-platform IDE for

7:52

writing and debugging microcontroller projects.

7:55

I've used the Arduino IDE as a starting point for many projects, and moving to a command-line

8:00

make file with AVRGC was pretty painless, letting me use any more advanced code editor.

8:11

Because Arduino cores are open source, if you want to know how Arduino is configuring the chip or

8:16

setting up pins, just poke around the core and find out how this chip's digital write works.

8:23

So people bag on the Arduino IDE now, but it was revolutionary. It set a new standard baseline for

8:28

MCU development apps based on GCC, Windows Mac Linux builds, and the core compiler tools

8:34

and libraries open source. And it doesn't try to lock you into the IDE.

8:38

So now, after Arduino came around, microcontroller vendors wanted more features than the Arduino IDE

8:44

could manage. So what do you do? At the time, the Eclipse IDE was the VS Code of the day,

8:49

a highly extensible IDE that could take plugins and be reskinned. Unlike VS Code, Eclipse was slow,

8:55

bloated, terrible to look at, at least to me. And the MC inventors didn't help this with their

9:01

often sloppy wrapping of Eclipse in their own toolkits to help the user. It further obfuscated

9:08

what I was trying to do. Just give me a well-organized makefile, a standard library

9:12

with docs and some example projects. I don't need your fancy GUIs. If you've ever done ESP32 or

9:18

Raspberry Pi C development, you've experienced the benefits that I think that Arduino started.

9:23

Good open standard libraries, good docs, GCC compiler, all of it immensely scriptable via

9:29

Makefiles or CMake, and all very open source. All you need to write code for these chips is

9:33

a text editor and a terminal window. And then STM32, the only MCU platform I've

9:39

delved into. Their chips are great, I've been envious of my compatriots who have

9:43

facility with them, but the tooling, it's like stepping back into the early 2000s with the

9:48

weirdly slow proprietary IDEs, especially on the Mac currently.

9:53

Thankfully, under the hood, it's all standard ARM GCC

9:56

with a decent set of libraries for these chips.

9:59

But I can only find the API docs for these libraries in their crazy IDE.

10:04

There's no website for them, as far as I can tell, no PDFs.

10:07

That's maddening.

10:09

One sub app of the IDE is called STMQBMX,

10:12

and it's a code generator to do proper chip configuration startup.

10:16

This is useful, especially the way some of the STM chips work.

10:21

And it only takes about 15 seconds to start, which

10:25

I don't know, maybe I'm maybe I'm just just selfish here,

10:28

but I think an app should start in faster than 15 seconds.

10:31

And it seemingly has example projects that can generate for your chip.

10:35

But I've not been able to find a way to actually get them to actually work.

10:40

And when you're searching for them, good luck,

10:41

because every time you type a character into the search field,

10:44

It causes the whole GUI to pause for several seconds as it sort of relays it out to sort of show you the updated search results.

10:50

*sigh*

10:51

So, but it's very powerful and it generates code that does work.

10:55

It blessedly can generate Makefile-compatible projects, but these code generators are fairly one-way.

11:00

If you edit any of the output and then you go back to the code generator and change, make some settings, you might be stuck.

11:06

You might get your code overwritten.

11:08

I can already see the need to make some chip configuration changes.

11:11

And it seems like the fastest path for me might be to start a whole new project, make

11:15

those changes, then copy over my code from the previous project to it.

11:19

In theory there are regions in the code files that are safe from the code generator, but

11:23

not everything that needs to be modified are in those regions.

11:26

So that's my rant.

11:28

I'm loving the STM32 chips.

11:30

I've already got first light on a project using them, and I'm learning them enough that

11:33

I can almost wean myself off the weird GUIs, but man, it's slow going.

11:38

Well, it's 2025. Who doesn't have their documentation online?

11:42

There's whole frameworks for documentation like Astro and JavaScript

11:45

or MKDocs and Python to make it easy to write docs.

11:49

Yeah, I mean, I mean, part of it, part of it is is STM, STM

11:52

Microelectronics, I think, is very sort of typical for most vendors.

11:55

I think Espressif and Raspberry Pi are sort of aberrant

11:59

and they're so good at their documentation.

12:01

And so I think I just need to be in the culture,

12:04

be in the community a bit more and learn where things are.

12:08

I'm I've not found it's like surely there must be API doc somewhere

12:13

It's not just

12:13

reading the source

12:15

But you know who knows?

12:18

Well next up I have the perfect antidote to your rant

12:21

And that's a

12:22

lecture in video titled a love letter to embedded systems by V Hunter Adams

12:28

Professor Adams teaches what I think is a graduate level course at Cornell University called digital systems design using microcontrollers

12:35

It looks like the course uses Raspberry Pi Picos using the Pico SDK in C and teaches

12:40

embedded development with projects like synthesizing birdsong or controlling a 1D helicopter.

12:46

This lecture is from a little later in the semester and Professor Adams warns that it's

12:49

the first time he's given this particular lecture.

12:52

In it, he tries to answer four questions.

12:55

Why should you do engineering projects?

12:57

What makes embedded projects special?

13:00

And two questions for his students.

13:01

are some projects other students have completed and how can you get started on projects on

13:05

your own?

13:07

Coming back to that first question, why should you do an engineering project?

13:10

He goes on to share that it's important to build things because it's really hard.

13:14

Nothing ever works.

13:16

He talks a little bit about simulations versus real world building.

13:19

And then he has one of my two favorite quotes from the lecture.

13:22

Building things fills you with humility and wonder.

13:25

You will weep in awe of things like keyboards.

13:28

And you know what?

13:29

He's right.

13:30

been a maker for a handful of years and the things I've learned on how things

13:34

are built does leave me with wonder and the keyboard example is perfect.

13:37

Something we use every day but you try to wire the rows and columns and make a

13:41

working keyboard with the bouncer and everything that goes into it. Second he

13:45

goes on to ask what makes embedded projects so special. He goes off on a

13:49

little bit of a tangent on Leonardo da Vinci. His point being that da Vinci

13:53

would spend months or years researching something like anatomy or shadows before

13:57

putting it into practice by painting something like the Mona Lisa.

14:00

His point being is that engineering is the mechanism for learning other stuff.

14:05

But why embedded?

14:06

They offer constraints and constraints beget complexity.

14:12

Microcontrollers are just the right amount of complexity.

14:14

For example, a data sheet can be hundreds of pages, which is complex, but

14:18

not beyond the capacity of one person.

14:20

And if you get a little magic smoke, microcontrollers just a few bucks and

14:24

maybe some burn fingertips, make a mistake with a high power system, and...

14:30

And then lastly, he shares my favorite quote, which is something I've struggled

14:34

to articulate when I'm asked about my hobbies and why I enjoy them.

14:38

Professor Adams shares that one reason he believes embedded engineering is special

14:41

is because it sits on the boundary of the natural world and the computational world.

14:47

Debugging places you in conversation with nature and with physics.

14:50

Is the bug in the software, the hardware, or is it a consequence of physics?

14:55

The lecture is about 40 minutes and I'm not saying you should rush out and watch it right

14:58

away.

14:59

But if you're doing something else like cooking in the kitchen, doing the dishes or out for

15:02

a walk, give it a listen.

15:03

I think you'll enjoy it.

15:04

Yeah, it's so good.

15:06

I've actually been watching this lecture of his.

15:09

I'm about like maybe 10 lectures in or so.

15:13

I haven't gotten to this one yet, but I listened to this whole thing.

15:15

It's wonderful.

15:17

Almost everybody at this point now in our lives, everybody that we know has written

15:20

and software and the feeling of power you get

15:24

when you've created a program,

15:25

you're like, I'm changing the world.

15:27

You know, it's like, I'm drawing a snake on the screen,

15:30

but I did that, you know, and like that sense of like,

15:33

I'm the master of this tiny universe.

15:36

And I feel that's one of the things that embedded stuff

15:40

is really good for because not only am I affecting

15:44

just pixels on my screen, but I'm actually causing things

15:47

to move in real world, you know,

15:49

or I'm causing a thing to sense the real world,

15:51

and that's super powerful.

15:53

I agree.

15:53

That's one reason why I love it.

15:54

I mean, everyone always uses the example

15:56

of the first time you get something

15:58

to blink on a microcontroller,

15:59

but there is awe and wonder the first time

16:01

you get it to blink on a

16:02

microcontroller.

16:03

(laughing)

16:04

I

16:04

have the power.

16:08

What's your last one for us?

16:10

Okay, so you ever wondered about those grid key layouts

16:15

on some synthesizers or MIDI controllers?

16:17

The linear arrangement of a piano is conceptually simple,

16:20

but it's actually kind of terrible for performance.

16:22

If you played a guitar,

16:24

especially for the lower four strings,

16:25

you've experienced a 2D note layout

16:27

that's more intuitive and easier for transposing.

16:29

You figure out a chord shape,

16:31

and that chord shape stays the same

16:32

as you move it up or down the fretboard.

16:34

For keyboard players,

16:36

we've been seeing an explosion of 2D layouts

16:38

for these 2D grid instruments like Monom, Launchpad,

16:41

or my favorite, the SynthStrum Deluge.

16:43

They have this more rational guitar-like layout

16:46

where a specific arrangement of buttons

16:48

can mean a major chord or a minor chord,

16:50

and you can play that arrangement kind of anywhere,

16:52

depending on where you kind of want the sound to be

16:55

in terms of its pitch.

16:56

And since they're still linear, like for each row,

16:59

it makes sense when you're coming from a piano.

17:01

But is there even better layout,

17:03

better for performance that has some music theory

17:05

baked in to make playing even easier?

17:08

And the answer is yes.

17:09

There is a layout called the harmonic table note layout.

17:13

This layout has the keys in a hexagonal grid,

17:16

but not linearly as grid instruments.

17:18

Instead, these notes are spaced according to a tonnet,

17:21

or tonnets in German,

17:23

where notes are arranged

17:25

how they relate harmonically to each other.

17:27

This was originally devised by Leonard Euler in the 1700s.

17:32

It's kind of cool that like there's something

17:34

from so far in the past that can be modernly useful

17:38

in terms of alternate instrument layout.

17:40

So how do you use this?

17:41

So imagine a hexagon grid.

17:44

Pick any hexagon in that grid

17:46

and that's your root note, like C.

17:48

The hexagon right above is the perfect fifth

17:51

above the root, so like G.

17:53

And the hexagons to the left or right of your root

17:56

is either the minor third or the major third.

17:59

So it sounds a little bit confusing,

18:01

but it's really easy to play a chord.

18:03

Just play that C, your root note, the G right above it,

18:06

and then pick if you wanna go the left or the right

18:09

to play a major or minor chord.

18:11

And because everything is grouped together,

18:13

like all these hexagons are touching each other,

18:15

you can actually play a whole chord with one finger

18:17

by just going at the intersection

18:19

of where those three hexagons meet.

18:21

And BOMP, you can play a major chord,

18:22

or BOMP, you can play a minor chord.

18:25

It's a really wild layout.

18:26

I've been wanting to build a MIDI controller

18:27

around this idea for a while.

18:29

I keep forgetting about it 'cause it's like,

18:31

there's so many cool things to work on.

18:34

But just recently I came across a post

18:36

from the maker of the Teensy microcontrollers, PGRC,

18:39

posted a really nice build of a harmonic MIDI controller

18:42

using key switches.

18:44

It's got some other tricks like velocity sensitivity

18:46

for computer key switches that I want to look into as well.

18:49

I think I might talk about that in a future episode.

18:51

And if you're looking to play

18:52

with this weird hexagonal layout right now,

18:55

there's a web-based keyboard called Harmo app in the notes

18:58

that you can kind of try it out.

19:00

It's not as fun as like a real thing

19:01

because you just have the single mouse pointer

19:03

as opposed to like all 10 of your fingers,

19:05

but it gives you the idea of kind of where the notes,

19:07

like kind of how the notes relate to each other.

19:09

And there was a physical MIDI controller called the Axis

19:12

that you can find on eBay and Reverb.

19:15

And it has like kind of all the features

19:17

of this thing as well.

19:18

And so I'm wondering,

19:19

should I make a harmonic table controller

19:21

using a Pico and CapTouch

19:22

like my other little CapTouch mini controllers?

19:25

(laughs)

19:26

So maybe that might come in the future, I don't know.

19:28

But it's like, it was so fun to watch some of the videos.

19:31

I'll include some links in the show notes

19:33

of websites that have some videos of people playing

19:36

and you can play really smoothly and fastly

19:38

on this new layout.

19:40

Have you updated your Synthstrom deluge

19:42

new layout? See, I'm not sure

19:45

if you can map the hexagon grid to a

19:48

rectangular grid because the Deluge has a rectangular grid and you can sort of

19:52

say that the hexagonal grid is sort of a sheared version of a rectangular grid

19:57

but I don't know I think it might be better just to have a separate box

20:01

that is the hexagonal buttons feeding into the Deluge. Sure. All right Paul, so

20:07

what's your third one for this time?

20:09

Thanks to Mastodon user GeekandDad I

20:12

is a board game for players 8 and up to build mechanical circuits to solve puzzles.

20:18

I love the description on their webpage.

20:20

Feel the pull of voltage and see the flow of current.

20:23

Electronics is abstract, but Spintronics makes circuits tangible, irresistibly touchable,

20:28

and deeply intuitive.

20:30

There are three game components available for purchase.

20:33

Act 1 is about $85 and introduces basic concepts including series and parallel, capacitor circuits,

20:39

logic circuits, and more.

20:41

Act 2 introduces the transistor and the inductor with intermediate and advanced concepts like

20:47

amplification, power conversion, feedback, and oscillators.

20:50

I briefly went through a board game phase with my kids, who unfortunately are grown

20:54

and gone, but I would have totally bought this.

20:57

You know, I probably still don't know half of these concepts myself.

21:00

Now if you're into board games, you know that things aren't cheap and Spintronics is no

21:04

exception.

21:05

You can get a bundle of Act 1 and Act 2 for about $150 or add the power pack and get all

21:09

three for about 180. If you visit their store, they also have

21:13

replacement parts, including batteries, chains, resistors,

21:15

and the list goes on. And the second company this year after

21:19

micro critter that we featured in the podcast that's local to

21:22

me, their headquartered in St. Paul, Minnesota. So that's kind

21:25

of cool.

21:25

Oh, neat. Yeah.

21:27

Yeah, we're not really known as a maker hub. But you know, two

21:29

things this year. So that's kind of kind

21:31

of neat.

21:32

Yeah, this this is really fascinating. It's like, when

21:34

you're when you're taught, you know, like, I went to school for

21:37

electronics, basically. And so there's a lot of these

21:40

analogies you hear, like one of the most common is the

21:42

water analogy, you know, like the amount of water is

21:44

like the amount of current in a circuit, etc, etc. This

21:46

is all mechanical, it's like gears and stuff. I think

21:49

that's really fascinating that like, oh, if you want

21:51

to, you know, if you want to show how a parallel

21:53

circuit works, you have like a gear train with two

21:55

sprockets and going off to driving one one thing or

21:59

whatever. And there's like a resistor sprocket that

22:02

has like, I think a spring in it or something that

22:04

sort of resist turning.

22:06

And so I find the mechanisms themselves fascinating.

22:09

It's like, how are they translating these concepts?

22:12

And like, what are these mechanisms doing?

22:14

As someone who doesn't know mechanical engineering at all,

22:18

it's like, well, I know electronics.

22:20

And so I really want to see how these mechanisms work.

22:23

And if, you know, cost might be prohibitive for some,

22:26

but when you look at the parts that are included,

22:27

like you're talking about,

22:29

I can see

22:30

how it easily adds up to that.

22:32

Oh yeah, 'cause like each little thing,

22:33

like, "Oh, here's a Spintronic capacitor and it's got like a little display and a spring

22:38

and it's also a sprocket of some kind."

22:40

Yeah, I mean, each one is a complicated little item in and of itself.

22:45

It's fascinating.

22:47

Well, that's our show.

22:48

For detailed show notes and transcripts, visit thebootloader.net.

22:52

And until next time, stay positive.