AI Coding a Music Player

I’m a pretty good developer, and I do use AI tools (with varying degrees of value) to assist both at work and home projects, but what I hadn’t really tried recently was building somethign that wasn’t just a toy from scratch without actually writing any code.

I’ve actually writen this app 3 times in last week, once using Claude Code, Once using Gemini, and Once using Qwen3-Coder-Next. I also have a version of it I built by hand, that has some additional functionality.

The goal here was to not touch the code, just give the AI instructions.

Basically it’s a Client Server app, the client runs in the browser, the Server maintains the music library, and deals with playing the tracks to the various output devices, the version pictured (built by Google Gemini) supports local browser playback and any DLNA/UPnP device.
Think of it as a very basic Roon with none of the bells and whistles, and a Web interface (which I’ve always thought Roon should have) rather than a stand alone application.
The Claude version I added a Squeeze server too, but I had to actually fix that code manually to get it to work.

To be honest I’m impressed with what it managed to build, I made no attempt to provide any direction on application look and feel, and the Qwen solution was pretty ugly.

I’m not sure someone who had no idea how the underlying components work, could have gotten it functional, there were a lot of prompts involved in getting the thumbnails to do the right thing, UpnP playback required a lot of walking through mistake after mistake.

Though most of the prompts were of the form, “It doesn’t play anything, and prints this error: XXXXX”, there were only a few times I had to explain it’s actual error.

FWIW I’ve been writing software for 40+ years and I would probably be considered exceptional, and I wouldn’t be able to get as much functionality in an app as quickly (The Gemini version has probably 3 or 4 hours invested in it), it’d probably take me a day or two to build what’s there and I would have gotten side tracked in perfecting some of the places the AI cut corners.
The version I wrote from scratch it has real seamless playback over uPnP, and that was painful to get working across devices. The AI versions just do it the easy way and start the next track when the last one ends.
There are also still a lot of broken bits and pieces in the AI applciations, and there would have been a lot less if it was written by hand, because testing would have been a part of development.

12 Likes

How do you see such tools being used in practice in your line of work?

1 Like

Honestly I don’t think it really saves you a huge ammount of time in real production work, maybe best case 30%, it could even slow you down.

For throwing a prototype together quickly I think it’s really impressive, but I’ve probably put another 2 days into it since I built what’s shown above and playback still has issues with edge cases, and I’m pretty sure if I’d written the code I could have made the fixes faster.

It has all the same problems that AI autocomplete has, in that it just randomly hallucinates names of things, in JS that’s particularly bad because it’ll still compile, so you have to wait until something fails.

I did end up converting the project to TypeScript, which helps some, but it still jumps to conclusions when trying to debug.

My job isn’t primarilly writing code, I do still do it when necessary, but my job is about providing technical direction and solving “hard” problems (i.e. Those that don’t have obvious documented solutions).

Having said that if I were a junior frontend developer, I’d be worried.

My 2c on LLM’s is they aren’t a path to AGI, they might be a step forwards but they are missing something fundamental. At some point the market is goig to realize this and it’ll make the .com crash look like a minor dip.

7 Likes

It would be pretty awesome if Roon allowed something like this outside of RAAT.

I think it’s already begun. When you see the major AI players rushing to be the first IPO because they know the money won’t allow for multiple “winners” and others (Sam Altman) already warning about the responsibility of government to bail them out should they fail because of the advancement potential they offer humanity. The writing is on the wall.

3 Likes

Indeed when you realize that NVidia is paying open AI up to 100B to build data centers using its chips, and OpenAI is funding startups to use the data centers it’s building. The money trail starts to look a bit dubious.

2 Likes

I’m old school, sharing an experience that certainly fits this thread and it put me into a reflective mode on the subject.

Using AI feels, wrong. It feels like cheating almost. But MAN… I’m trying to get a promotion pushed through for one of my DRs and plugged the details in an outline I had into copilot.

I’m sad.

I feel for humanity because it would have taken me the better part of a day to polish my initial attempt into what AI returned in a NY minute.

3 Likes

Read it a bit more carefully. Often surface details in docs are very well expressed and seem insightful, but the underlying logic can often be suspect. For Advertising copy though I guess it’s less relevant. I use various agents to write Docs, but you really do have to read them critically.

My feeling on AI coding at this point is it’s like a talented junior developer who won’t listen and never checks their work. It’s fine when it’s right, but you can’t teach it to not make the same mistake over and over.

I’ve done some more work on this, continuing the experiment, added an extra optional component that interfaces with Qobuz, it supports searching for an album, can provide streaming playback (it also provides download shhhh..). Much like Roon it integrates that with the local library.
UPnP playback is now seemless, somewhere along the way squeezelite support got totally broken.

I suspect if I added a LOT of albums there would be a more issues, but it’s actually very good. To the point I’d probably use it if my Optical Rendu wasn’t the Roon only version.

Generally it’s been an interesting experience, still not convinced it’s materially faster overall than an experienced dev to get to something production ready, but there is a value is being able to go broad with features quickly when you don’t know what the final app is going to look like.

2 Likes