CLI tool
pkalogiros/AudioMass avatar
pkalogiros/AudioMass

AudioMass: a browser audio editor you can also self-host

Free full-featured web-based audio & waveform editing tool

3,001 stars346 forksJavaScriptNOASSERTION

At a glance

What is it?
AudioMass is a free web-based audio and waveform editor with a multitrack mode, shipped as a static front end plus a tiny local server. Here is how the pieces fit, how to run it, and where it stops being the right tool.
Who is it for?
AudioMass fits people who want waveform editing and light multitrack assembly without installing a desktop DAW, and it fits teams that need an editor they can serve themselves from the src directory. It does not fit anyone who needs spectral repair, scripting, or batch processing, because the README describes none of those.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 44 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 3, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What AudioMass edits, and who the browser target excludes

AudioMass is a waveform editor that runs in the browser. The README describes it as a "Free full-featured web-based audio & waveform editing tool" and points to a hosted instance at audiomass.co. The repository is the same application in source form: a src directory containing JavaScript modules and two small server scripts.

The audience is narrow but real. If you need to trim a recording, normalise levels, apply EQ or compression, and export, AudioMass covers that without an install. The multitrack mode the README announces adds clip dragging, crossfades on overlaps, recording onto armed channels, and a bounce down to a single file. That puts it in the territory of a lightweight arrangement tool rather than a pure sample trimmer.

The exclusions matter more than the inclusions. Everything happens in the browser, so the practical ceiling is whatever the tab can hold in memory. The README does not state a maximum file size, a supported sample rate, or a list of import and export formats. Anyone editing hour-long multitrack sessions should treat those omissions as unknowns to test rather than assume they are handled.

The architecture is a static front end with a two-file server

The repository layout is unusually flat: a src directory plus README.md, LICENSE, THIRD_PARTY_NOTICES.md and .gitignore. There is no build system, no package.json in the listing, and no dependency manifest at the top level.

The README's build line shows what the front end actually is. It concatenates a list of plain JavaScript files (wavesurfer.js, its regions plugin, then oneup.js, app.js, keys.js, contextmenu.js, lufs.js, ui-fx.js, ui.js, modal.js, state.js, engine.js, actions.js, drag.js, recorder.js, multitrack.js, welcome.js, fx-pg-eq.js, fx-auto.js, local.js, id3.js, lzma.js) and pipes them through uglifyjs. The filenames are the architecture: state.js and engine.js hold the editing model, actions.js and drag.js drive interaction, recorder.js and multitrack.js are the newer recording and layering paths, and id3.js plus lzma.js indicate metadata parsing and compressed project storage. Wavesurfer.js supplies the waveform rendering and the regions plugin supplies selections.

Because the source is plain JavaScript with no module bundler in the documented pipeline, the shipped page loads a set of scripts rather than a compiled bundle. That is why the server scripts are so small: they exist to serve static files, not to run application logic. Nothing in the README suggests a backend, a database, or a processing service. Your audio does not leave the machine when you self-host.

Running AudioMass locally and making a first edit

The README gives two ways to start a local server, and both assume you are inside the src directory. Check out the repository or download it as a zip, then navigate to src in a terminal.

If Go is installed, run the bundled server:

bash
cd src
go run audiomass-server.go

If Go is not installed, the README offers a Python equivalent:

bash
cd src
python audiomass-server.py

Either way, the README says to open http://localhost:5055/ in a browser. That is the port both scripts listen on according to the instructions, and it is the address you should see the editor load at. If the page does not appear, the README does not document a fallback port or a flag to change it.

Once the editor is open, the first useful exercise is a single-track edit: load an audio file, drag across the waveform to select a region, and use the selection actions to cut or trim. That path exercises state.js, actions.js and the wavesurfer regions plugin together. For the multitrack mode, add a second track, drag a clip so it overlaps the first, and listen to the crossfade the README describes on overlaps. Recording requires arming a channel first.

For publishing a minified build, the README supplies this concatenation and uglify step, run from the directory that contains the listed files:

bash
cat dist/wavesurfer.js dist/plugin/wavesurfer.regions.js oneup.js app.js keys.js contextmenu.js lufs.js ui-fx.js ui.js modal.js state.js engine.js actions.js drag.js recorder.js multitrack.js welcome.js fx-pg-eq.js fx-auto.js local.js id3.js lzma.js | uglifyjs -c -m -o all.build.js

The output is all.build.js. Note that this command lists the files in a specific order and includes paths under dist and dist/plugin that are not visible in the top-level repository listing, so you may need to reconcile it with your checkout before it runs.

Where AudioMass is the wrong choice

The obvious limitation is that the README documents no server-side processing, no batch mode, and no scripting interface. If your job is to normalise four hundred files to a target loudness, AudioMass is the wrong tool, because there is no documented way to drive it from a script; every operation is a browser interaction.

The second limitation is memory. The application runs entirely in the tab, and the README gives no guidance on how large a session can get before the browser struggles. Long recordings with many layered tracks are exactly the case where that ceiling appears, and it appears as a browser problem rather than an application error message.

The third is the licence. The repository metadata reports NOASSERTION, and a LICENSE file exists at the top level alongside THIRD_PARTY_NOTICES.md. NOASSERTION means the automated classifier could not map the file to a known licence identifier, not that no licence exists. If you plan to redistribute AudioMass or embed it in a product, read LICENSE yourself. Nothing in the README states the terms.

Finally, maintenance. The last push to the production branch was on 2026-08-20, so the project is not dormant. There are no retrieved releases, however, which means there is no tagged version to pin to. If you self-host, you are tracking a branch.

AudioMass compared with Audacity

The comparison people reach for is Audacity, and the difference is architectural rather than feature-by-feature. Audacity is a desktop application: it installs on the machine, it can use disk for scratch space, and it has a documented scripting interface for batch work. AudioMass is a web page. It installs nowhere, it starts in seconds, and it runs on any machine with a browser, including one where you cannot install software.

That trade runs in both directions. AudioMass wins on friction and on portability. Audacity wins on session size, on offline batch processing, and on the depth of its effect set, none of which the AudioMass README claims to match. The multitrack additions narrow the gap for arrangement work (clips, crossfades, armed-channel recording, bounce), but the README does not describe spectral editing, noise-profile repair, or macro scripting, which are the reasons many Audacity users stay put.

A second alternative is simply the hosted instance at audiomass.co. Running the same application from the project's own site removes the local server step entirely, at the cost of depending on that site being reachable and on your audio travelling to it. Self-hosting the src directory keeps the audio local. The choice between the two is about where your files go, not about which features you get.

Maintenance, upgrade cost, and licence implications

Upgrading a self-hosted AudioMass means pulling the production branch and restarting the server, because there are no retrieved releases to pin to. The front end is plain JavaScript loaded as individual files, so an upgrade replaces those files rather than swapping a versioned artefact. If you minify with the documented uglifyjs command, you rebuild all.build.js after each pull.

The dependency surface is small, but it is not zero. THIRD_PARTY_NOTICES.md exists at the top level, which tells you the project tracks third-party components separately from its own LICENSE. Wavesurfer.js and its regions plugin appear in the build command and are the most visible of those dependencies. Before redistributing a built AudioMass, read both files.

On the licence itself, the honest position is that the repository reports NOASSERTION. That is a classification result, not a licence. Whether you can use AudioMass commercially, modify it, or ship it inside another product depends entirely on what LICENSE says, and this article cannot tell you what that is. Read it. If the terms are unclear to you, that is a question for someone qualified to answer it, not something to infer from the fact that the hosted site is free to use.

Editorial conclusion

AudioMass fits people who want waveform editing and light multitrack assembly without installing a desktop DAW, and it fits teams that need an editor they can serve themselves from the src directory. It does not fit anyone who needs spectral repair, scripting, or batch processing, because the README describes none of those. Before adopting it, verify two things yourself: that the LICENSE file's terms match how you intend to distribute it, since the repository metadata reports NOASSERTION rather than a named licence, and that your browser handles the file sizes you work with, because the README documents no size limit. Then run go run audiomass-server.go from src and open http://localhost:5055/ to see whether the editor covers your actual workflow.

Frequently asked questions

Is AudioMass free to use?

The README describes AudioMass as a free web-based audio and waveform editing tool, and the hosted instance at audiomass.co is presented as the live version. The repository also carries a LICENSE file, so the terms of use are defined there rather than in the README.

Does AudioMass require an account?

Nothing in the README or the repository layout describes user accounts, sign-in, or authentication. The documented setup is a local server serving the src directory, and the hosted instance is presented as an editor you open directly.

How does AudioMass compare to Audacity?

AudioMass runs in the browser and its README documents no scripting or batch interface, while Audacity is a desktop application. The AudioMass README also does not describe spectral editing or macro scripting, so the two differ in both deployment model and effect depth.

How do I install AudioMass?

Check out the repository or download it as a zip, go into the src directory, and run go run audiomass-server.go, or python audiomass-server.py if Go is not installed. The README then says to open http://localhost:5055/ in a browser.

Is AudioMass safe to use?

The README does not make security claims. What it does document is a local server that serves the application from the src directory, so when you self-host, the audio you edit stays on your own machine; using the hosted instance at audiomass.co means your files go to that site instead.

Official sources

  1. Issues
  2. pkalogiros/AudioMass on GitHub
  3. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/pkalogiros-audiomass.svg)](https://hysenlabs.com/projects/pkalogiros-audiomass)