I Tried Vibe Coding an Audio Streaming System in C++: Here Are the Results
Source: Dev.to
Letting the Vibes Drive
To be clear, I didn’t go in totally blind. I nudged the LLM in the right direction because I understand audio streaming, ring buffers, and how this needs to integrate into a renderer. Even so, the result was… exactly what I expected.
- It works.
- No crashes.
- No obvious errors.
But if you look closely, it doesn’t really work.
What I got was the probabilistic average of how someone might implement audio streaming. No novelty. No awareness that this stream lives inside a renderer. Just the most statistically likely solution.
And honestly, being average isn’t even the worst part. The worst part is this:
2.1 k lines of something.

This has nothing to do with AMP, by the way—it’s a great tool. Their free‑to‑paid transition is actually impressive. These are just frontends to LLMs doing what LLMs do.
For reference: audio streaming with something like raylib (which is the case here) is sub‑100 lines of clean C++ if you know what you’re doing.
So what are those 2 k+ lines? Look closely at the end. The TODOs.

At first glance, you might not see the problem. Here’s the problem:
I now have an average solution that I must read and debug.
- My repo is polluted with thousands of lines of autogenerated markdown “documentation”.
- I waited a long time for this to generate, time I could’ve just spent writing the thing.

The Real Cost: Reading Code
If you’ve ever inherited a codebase, you already know this pain. If you haven’t, here’s an exercise: fork any project you rely on and try reading it.
Reading code you didn’t write is hard. It’s not connected to your mental model. It doesn’t live in your head.
Now try reading code that mostly works, but not quite. There’s an old saying in low‑level circles: “I like segfaults because they tell me exactly what’s wrong.” And it’s true. There’s nothing more terrifying than code that looks reasonable, runs, and silently does the wrong thing.
That’s what vibe coding gave me. In the end, I spent more time dealing with this than I would’ve spent just writing it myself, using my brain, plus LLMs where they actually help.
Now imagine someone with no programming background. How many times do they re‑prompt? What do they even say is “wrong”?
Where I Actually Landed
As I write this, I’m honestly demotivated. I have zero desire to look at those changes. So I’m going to use an LLM the way I actually recommend using one: as a tool.
“Claude, comb through this and give me a concise outline of how it works, plus links.”
That’s it.
Final Thought
Anti‑vibe coders aren’t anti‑LLM. We’re anti brainless marketing fantasy and the very real damage it does to beginners. That’s all we’ve been saying from the start.
But hey. It’s your life. Use it however you see fit.