Why Audiqa’s importer could not stay fully autonomous

Audiqa’s importer was rewritten around a simple boundary: automate the routine work, but stop before confidence turns into permission. This is the assumption that changed the product.

Why Audiqa’s importer could not stay fully autonomous

When you first open Audiqa, the first real job is not playback. It is import. That matters more than it may seem. Most people make an early verdict on a product from the first meaningful interaction they have with it. With Audiqa, that moment is often the point where you ask it to look at the music you already own and make sense of what is there. If that experience feels clumsy, noisy, or fragile, trust drops immediately. If it feels calm, clear, and reliable, the rest of the product gets a chance to earn its place.

So from the beginning, I have wanted Audiqa’s import process to feel as smooth as possible.

A big part of that goal is performance. Import cannot feel graceful if it feels slow. On my current benchmark, importing roughly 24,000 audio files — including tag extraction and acoustic fingerprinting — takes less than four minutes. That matters because the first experience with a product like this should feel capable immediately, not like you are waiting around for it to prove itself.

The other big part of that goal is autonomy. Audiqa is designed to be as autonomous as possible, not because I want the product to take control away from you, but because I want to take unnecessary work off your shoulders. A serious music collection already contains enough friction: duplicate files, inconsistent tags, multiple releases, conflicting metadata, uneven quality, and years of accumulated mess from different tools and workflows. Audiqa does the heavy lifting up front: it inspects what is in the collection, identifies the likely conflicts, and proposes sensible outcomes so that you do not have to micro-manage every single ambiguity.

If the system can correctly narrow down or effectively settle 90 percent of the obvious cases, then the remaining 10 percent becomes manageable. Import stops feeling like administrative labor and starts feeling genuinely smooth.

But there is a big difference between removing repetitive decision-making and silently applying changes to a collection. One is about reducing toil. The other is about taking liberties with something that may represent years of careful curation.

That is where one of my assumptions started to break down.

What is Audiqa?

Audiqa is built for real music collections — long-lived libraries with duplicates, tag conflicts, release differences, and quality trade-offs. It helps bring them into shape while keeping the user in control.

Get the overview →

One assumption I had to unlearn

For a while, I was reasoning about import as if a good enough decision engine would let it run as one mostly continuous automated flow. Not fully silent or reckless, just continuous. Look at the files, reason about them, reach the most sensible conclusions, and move the library forward. At first, that felt elegant to me. The whole thing seemed cleaner if the system could just keep moving forward. The more I sat with it, the more I could see the assumption hiding underneath it.

And yeah, I was wrong. I thought that if Audiqa becomes good enough at judging the obvious cases, then import can mostly be treated as one uninterrupted flow. That sounds reasonable until you look closely at the kind of people who are likely to care enough to use a product like Audiqa in the first place.

These folks are not people who accidentally ended up with a few MP3s in a downloads folder. Very often, they are people who have spent years shaping their libraries. They have corrected tags, compared releases, preserved specific editions, kept alternate versions on purpose, and built up a set of choices that other software would happily flatten into “duplicates.”

A conflict inside a music library is not always just bad data waiting to be normalized. Sometimes it is a judgment call sitting on top of someone else’s prior judgment. Two versions of the same album may not be interchangeable to the person who owns them. A remaster is not always a better default. A cleaner metadata source is not always the preferred truth. Sometimes the right answer is not to collapse the difference at all.

That was the moment where it really clicked for me. I could feel the shape of the mistake immediately: I was not just trying to automate tedious work, I was drifting toward a model that risked treating user judgment as something the system could quietly absorb. Hang on, that was not the product I wanted to build!

The more I followed that logic through, the clearer it became that the problem was not really about how to automate more aggressively. It was about understanding where automation should stop presenting confidence as permission.

Audiqa is designed to take the routine work off your shoulders — not your final say.

Automate the routine work, but stop before confidence turns into permission.

The balance Audiqa had to find

Once I saw that clearly, I could not think about import the same way anymore. Audiqa is built to remove as much unnecessary decision-making as possible. That part still stands. It does the heavy lifting. It surfaces strong default proposals. Import is meant to feel fluid instead of bureaucratic.

That is when I had to admit that not every conflict should be treated the same way. Some cases are genuinely mechanical. They are routine, obvious, and safe to let the system carry. Those should feel effortless. Some cases are interpretive. Those need a review boundary.

That is the balance the importer has to strike, because import is where Audiqa earns or loses trust first. If the first experience feels like endless micro-decisions, then the product has failed to carry its share of the burden. But if it feels like the software is confidently bulldozing distinctions you deliberately preserved, that is even worse. You do not get trust back easily after that.

That left me with a much clearer standard for import: it has to feel easy, but it also has to feel safe. The goal is not to force you to manually manage every step. The goal is to make sure your attention is only needed where your judgment actually matters. If Audiqa can confidently carry most of the routine load, and then slow down only where the collection reflects real preference, history, or intent, that is a much better design than either extreme.

Full manual control is too much work. Blind automation is too much arrogance. The right shape sits in between: autonomy where the system is confident, restraint where the collection deserves respect.

Audiqa’s importer is built — and I’m proud of what it is

So the assumption that changed Audiqa’s import pipeline was not some small implementation mistake at the edges. Audiqa’s importer has been rewritten from the ground up more than once, and this realization is a big part of why.

What it exposed was not a bug in execution, but a flaw in the model itself: the belief that smoother import would naturally come from treating the process as mostly continuous once the decision engine got good enough. Letting go of that pushed the importer toward a much more complete shape.

A smooth import does not come from removing the user from the loop everywhere. It comes from removing them from the loop where their input adds little, while preserving a clear boundary where their judgment is the whole point.

Audiqa’s importer is built around that balance now, and I’m genuinely proud of how strong it already feels and more importantly, it reflects the kind of product Audiqa is built to be: ambitious about reducing work, careful about trust, and aware that a curated music library is not just a pile of files waiting to be “just fixed.”

Follow Up

If you want to follow the process behind the development of Audiqa you can subscribe to updates via a standard RSS feed or the low-traffic Bluesky and X profiles.

Subscribe via RSS