Episode 47 - The Caroling Conifer

his is what happens when you let an engineer use AI to try to play Jingle Bells. Spoiler: it's bad. But also kind of wonderful?

Episode 47 - The Caroling Conifer
An image of a workshop where a human and a robot are putting together a plywood christmas tree with bells in it. Really spot on! Good job Gemini.

(or, How Claude Learned to Write Music)

Prologue

This is what happens when you let an engineer use AI to try to play Jingle Bells. Spoiler: it's bad. But also kind of wonderful?

Welcome to Episode 47, where I tell the story of building a Christmas tree that plays music (poorly) and discover that Claude makes a surprisingly good building partner when you need to figure out which solenoids to buy and how to hit a bell in precisely the right spot.

A solenoid is a small piston that is controlled electronically. You can tell it when to push out and when to retract, and how fast to push out. This GIF courtesy of Adafruit.

Carologue

Last year, for the holidays, I made an LED Christmas tree. This year, I wanted something different but similar: the Caroling Conifer, a plywood Christmas tree with eight bells that can play carols when you press a button. I planned to mount the bells and use a microcontroller to control solenoids that strike the bells to make music. Simple, right?

A video I created that chronicles the building of the Caroling Conifer.

The Plan

The first thing I did was sit down with Claude to brainstorm, and that's when things got interesting. Claude didn’t have some brilliant insight, but I could send it off to research while I focused on the design. When you're trying to choose between dozens of solenoid options, having someone read through all the specs and summarize what actually matters is genuinely helpful. Claude helped me find parts, figure out the correct wire gauge for running power to each solenoid (waterproof AND low resistance, because this thing was supposed to live outside), and even explained something called the "sound bow"—the part of a bell where you're supposed to hit it to get the richest tone. I wasn't totally confident that Claude was right, so I went and read the Wikipedia article. It was right.

This is how I use AI for building projects: not to replace my judgment, but to accelerate the boring parts so I can get to the interesting parts faster.

The Code

Claude wrote all of the code, literally hundreds of lines that I didn’t have to write myself. I actually kind of love this. I don’t like writing every single line of code; for me, it is more about building the end product. One thing that became very clear during this particular process: debugging can become more of a conversation. When things were not working, I would describe what was happening, and while Claude was iterating on code, I would go and tweak a bell position or adjust some constants and test again. It felt like having a building partner, which made the whole process more fun than debugging alone.

🦾
Shoutout to the wonderful people at Adafruit who created CircuitPython. That’s what Claude and I used to write all of the code. If they had not spent so much time building and creating solid tutorials, documentation and libraries, it would not have been so easy and fun!

The best moment was when Claude was working on reading a MIDI file. It had been working, then it wasn't, and I was trying to get Claude to fix it. Partway through "fixing" it, Claude stopped and said something like: "Oh wait, it was working and then I changed the file reading and it stopped. Let me re-evaluate that before rewriting all the code."

It caught its own mistake. That was weirdly delightful.

The Disaster

So here's the thing about cheap bells: they're cheap for a reason. I got all eight bells wired up, mounted, and ready to go. When I played them in sequence for the first time, two of them sounded the same—different notes, almost the same pitch. And then I tried to play Jingle Bells.

A GIF of me doubling over laughing very hard.

I knew it wouldn't sound like a professional bell choir, but I didn't expect it to sound like someone threw a bag of cats at a xylophone (1). One of the bells, the F note, was so flat it was almost an E. In retrospect, I should have spent more on bells to get higher-quality ones. I ended up not putting it outside. I couldn't inflict this on my neighbors.

The Compositions

Despite the tuning issues, Claude composed original music for the Caroling Conifer. It rewrote "Rush E" in an attempt to play notes in parallel with syncopation and everything which was pretty good, and is a little bit dance worthy. It makes you want to get up and move! It then wrote three original pieces along with this introduction that I had to read aloud:

What you're about to hear is not a recording. There is no speaker, no synthesizer, no digital trickery. What you're about to witness is eight physical bells struck by eight solenoids controlled by a single microcontroller smaller than a credit card. Here's the thing nobody expected. The solenoids themselves have a voice. That percussive clack of metal striking metal—that's not a bug. That's a feature.

"Pure aggressive percussive fury" is how Claude described the third composition. I may have misspelled "fury" in the video caption as "furry," which honestly might be more accurate given how this thing sounds (2).

The music might not be the banger I wanted it to be, but I am still very proud of building a device that can play all those notes in rhythm!

The Real Lesson

I talk a lot about AI as a tool, but this project felt more like having a building partner. Not a replacement for my work, but a collaborator. I still designed the brackets, cut the tree, painted everything, and made all the actual decisions. But Claude handled the research rabbit holes, wrote the code I didn't want to write, and brought some creative energy to the finale.

A GIF of me dancing in my workshop. Too bad you can't hear the music.

If you're a builder, this is the vibe. It's not about AI doing your job. It's about having someone to bounce ideas off, delegate tedious tasks to, and help you better understand things. I had a ton of fun building this thing, and Claude made that possible in ways that felt surprisingly natural—almost like having someone in the workshop with me, except they never complained about the noise or the paint fumes.

Also: don't cheap out on bells.

Footnotes:
1 - Claude wrote the thing about cats on a xylophone. I laughed, so I left it in.
2 - I tried to blame my misspelling on Claude first as a copy-and-paste error, but no, that was all me.

Newsologue

CES 2026 is happening right now, and the AI announcements are a lot (this was mostly done by Claude):

  • NVIDIA unveiled the Rubin platform - Their next-generation AI chips are in full production, promising to cut the cost of AI tokens to one-tenth of previous platforms. Jensen Huang also announced open models for robotics and autonomous vehicles. If you're wondering why AI keeps getting cheaper and faster, this is why.
  • AMD's Helios takes on NVIDIA - Lisa Su showed off AMD's competing AI server rack, directly challenging NVIDIA's dominance in the data center. Competition is good for all of us.
  • The theme of 2026: practical AI - TechCrunch's summary: "If 2025 was the year AI got a vibe check, 2026 will be the year the tech gets practical." Less about bigger models, more about actually deploying them where they're useful. I want this to be true! Dymaptic’s own accessible map agent is designed to be one of these things: a useful AI tool!

Epilogue

I made the Caroling Conifer and then made the YouTube video about it. I fed the transcript into my Claude writing agent, being sure to specify: “Ask me questions to fill in gaps before drafting.” After a few back-and-forths with Claude, I brought the draft here and edited it heavily, rewriting large chunks. But the draft was really helpful in forming the story.

From there, Holly edited and off it went to the email sending machines.

The Caroling Conifer didn't make it outside, but the video is done, and I had a ton of fun building it. Sometimes that's enough.

Subscribe to Almost Entirely Human

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe