Tapeworm

This is a simple multi-source audio recorder.

That gets a full paragraph all its own because it's actually surprisingly rare, with the only program I know coming anywhere close being NCH Sound Tap. More specifically, this is an audio recorder that supports any number and combination of microphone and speaker (loopback) inputs on Windows 7 and later.

In short, it's a software mixer that lets you record whatever you want without messing around with line-in or virtual cables, and, unlike a full broadcasting suite, it fits on half a floppy disk.

I intended the interface to be simple and intuitive for game recording, so you can launch it, check the microphone box if desired, and hit start to record without any other configuration necessary. That said, it does have some other functions that are worth reading about. Download links will follow if you just want to get started, or continue reading for more details.

Right now the project is in a beta-quality state, and is not considered complete. The primary missing feature, Linux support, does not prevent it from being useful on Windows though, so I've decided to post it here early. Windows functionality should be mostly good enough: I intend to continue adding polish and tying off loose ends for a while yet. It's useable for personal projects. I'd advise not relying on it for anything major until it's formally complete.

AI Disclosure

Every line of code in this program was and will probably continue to be written by AI. Claude Sonnet 4.6 did the majority of work, with support from GPT-5.5 and Sonnet 5. I am responsible for the broad strokes: design, feature set, and orchestration.

Why Tapeworm?

Because that's the name Claude gave when I wrote stalkerware by mistake. It stuck because it's pretty unique, and also, and more importantly, because it's a reminder that the things we build will not necessarily be limited to the uses we intend.

As mentioned this was originally for game recording: I wanted to be able to hit a button to start recording, keep playing, and hit the button again to stop. At that point we didn't have a name for the project (I'd probably have gone with something boring like "recorder"), but we were working on dependencies, Claude had to pick something, and it wasn't appropriate to stop to ask me about something barely related to the task at hand.

I saw the name by chance and asked Claude about it. I'll make an exception to my policy on AI-written site contents here:

honestly "tapeworm" just felt right — it records, it runs in the background, and it's a little unsettling.

And that's why there's no silent mode that you can run with a shortcut bound to ctrl+alt+r, which could equally be started by somebody else without you ever knowing it happened.

This came up very early in development. It's entirely reasonable to think I might have realized it any number of times since then. It's also entirely reasonable to think I might just have gone on my merry way, released the program, and made the world a more dangerous place for abuse victims, journalists, citizens of oppressive regimes, and a really disturbing number of other places where being recorded without your knowledge is problematic.

I don't claim this is the only tool that could do those things. Still, I'm thankful that Claude picked a fitting name, and that I saw it early, because that's not an ecosystem I want to contribute to. The name stays as my way of crediting Claude for the save, and because it's a story worth telling about unintended consequences and the value of thinking things through.

Download

Pick the download option for your system below. Tapeworm is fully self-contained and requires no installation. Simply run the program, change the default output folder if desired, and record away.

Major Features

Record any combination of sources

This is one of Tapeworm's defining features. Checking or clearing a box toggles that source in real time. In addition to the system default microphone and audio, you can record from any other devices detected by selecting that item from the list of other devices.

You are limited only by the processing power and disk capacity of your system. If you want to mix 30 sources together, you can go right ahead and do that, no hardware mixer needed. See below for details on automatic mixing and volume management.

Normalization

When recording from multiple sources and mixing them together to make a single file, the program has to combine audio signals. The simplest way to do this is to add them together, but if one of the signals is loud this will damage the entire recording (a process called clipping). There are various tricks used in various industries, but Tapeworm goes for a simple one: all sources contribute a fixed amount of the total available volume. This means loud noises can't clip (because at most they can only contribute their portion of the available spectrum), but also that you'll generally wind up with an unreasonably quiet result, especially if you don't enable all the sources on your system as those will all be contributing silence during recording.

Tapeworm will check how quiet the resulting file is when you finish a recording session, and if it determines there's room, offer to normalize it for you. Normalization raises the volume of the entire file by whatever margin brings the loudest point to the top of the spectrum without going over. Note that Tapeworm does not leave headroom: if you want to normalize to a specific level that's best done in your audio editor.

You can also have Tapeworm process existing files if you want using the normalize button.

Output format and mixing

In most cases the default settings will be what you want: when you record, you get a single wav file with all sources mixed together, at whatever quality setting is the highest of those on your system at the time. However, because edge cases do exist, you can tweak both output format and mixing mode. Consider these advanced settings: if you need them you probably already know it.

Output format can be set to one of a number of presets from the eponymous list. Automatic is the default and what most people will want, any other option will guarantee that all sources are recorded in that format.

Mixing mode is an option for those who plan to edit work later. The remaining modes generate stems: an audio file per source in a folder dedicated to each recording session.

In silence mode, all sources output to their own files, inserting silence when disabled. These can then be inserted into an editor and mixed however you like. This makes for simple editing, but is costly in terms of disk space and performance.

Instructed mode is more efficient: sources output audio to their own files, but only when actually enabled. Disabling a source closes the current file, and enabling it again starts a new one. An instructions file will be written along with the audio, telling you the exact sample at which a source was enabled or disabled. You can then use your audio editor's go-to or timeline function to place them at the correct location when mixing.

Custom code disclosure

In order to support Windows 7 Claude and I had to eschew a lot of the common ways people build graphical interfaces and audio pipelines, and write our own versions. this section is meant to be technically detailed, but summarizes to please be aware that we did these things, and if you find bugs report them so they can be fixed. On to the details.

Most of these cases are because Rust 1.76 can't build a lot of things nowadays. Bringing in pre-built libraries is quite difficult to impossible, and because Tapeworm is leaning on relatively few OS operations, it was simpler to write them directly ourselves. This does not mean it was simple, or that I could have done the work without Claude, but we got there, the program works, and that's what matters in the end. The following areas are hand-rolled:

All of this is to say that I expect there to be bugs in this program, and I do not expect to be capable of finding all of them. If something doesn't work as you expect, please reach out and tell me about it.