
AudioMass – free, open source, web-based Audio and Waveform editor - zaiste
https://audiomass.co/
======
pantelisk
Hello hackernews!

I am the author! Wow, I can't believe the attention this is getting! Hopefully
this proves to be useful as a tool, and not just as a JS demo! :)

The next plans are \- redo drawing library to further improve performance! \-
polish a bit some audio plugins (like the paragraphic EQ) since some parts
feel a bit off (the limiter, paragraphic eq for example). \- Add some
tutorials! Some things might not be straightforward like using Shift + [keys]
for shortcuts etc. \- Easier recording mode (like the ability to open a new
empty audio project) \- Multitrack mode, for more channels! \- play a bit more
with the concept of having different windows that can be in different screens
(check out the frequency analyzer under "view")

To answer a few questions, I plan to have a very open license this is just a
fun side project for me. but I need to figure out the licenses of some libs I
am using first (eg wavesurfer, lzma-wasm) and do proper attribution!

Thanks again!

PS. I wrote this in 2018, and just kept it on my hard disk until recently, so
certain features might be slightly different than back then :)

~~~
padenot
Hi, I work at Mozilla doing audio programming for Firefox, I see in your about
page that you have issues with the Web Audio API, ping me (same nick a bit
everywhere on the web, and also @mozilla.com) and we'll answer any question or
fix any issue you have. Lots of things have happened in the audio space on the
web since 2018!

In particular, low latency (like native roundtrip latencies, so <10ms easy,
but depending on the OS) no-jitter/real-real-time audio programming is now
something that developers can do. Lock-free/wait-free programming and SIMD are
coming in the next weeks/months.

Very cool project in any case, I'll use it when I need to quickly do very high
zoom on wave forms to debug things for Firefox.

~~~
kiviuq
When can have we web midi (and no not sysex ;)

Sooooo?

~~~
jacquesm
Seconded, web midi is a big showstopper for Mozilla and should have more
priority than the various bells and whistles that Mozilla does seem to
prioritize but that ultimately are not part of a browser.

Not being able to use Midi from FireFox means that for a whole raft of
possible applications Chrome is the only option, which is a real pity.

Please, please, pretty please, give web midi a higher priority.

~~~
TremendousJudge
Curious, what applications need web midi?

~~~
Uninen
Most music-related applications wanting to offer generic hardware support and
hackability. Midi is an amazing standard. It allows you to hook up a
synthesizer from the early 80s to your 2020 laptop (via a midi-capable audio
interface) and control almost anything in your modern DAW (Digital Audio
Workstation). And if your Web browser has support for it, control a software
synth or any application as well.

In addition to just musical instruments, a huge number of different hardware
still use midi. I'm personally interested in DJ-world where things like DJ-
and light-controllers use midi and therefore are very easily remappable and
very hackable (if the sw is built correctly).

I've wanted to build some DJ-related sw myself that would work via browser but
the fact that currently only Chrome supports the standard has so far kept me
off it. I'd very much like to see Firefox supporting Web midi.

~~~
TremendousJudge
Right, I understand what MIDI is for, but usually music software has these
real-time requirements on performance and the browser runs javascript, so...
What are the applications for web midi? People aren't mixing their music on
the browser nowadays, right?

~~~
wheels
Just to throw out an example from a friend's company: online piano lessons.
MIDI input in the browser makes it possible for them to tell if you played the
correct notes on your keyboard.

------
pantelisk
Author again here! Now that this is finally sunsetting, I feel a bit more
comfortable writing some things I 've learnt today!

\- First of all, I am amazed at the suggestions and love this is getting. I
have been dog fooding it by using it to quickly edit foley audio from a tascam
hand-microphone device, in order to make some cheap sound effects for a game
project I am working on. The point is, I thought I was aware of all bugs, and
all areas of improvement, and I am humbled to have my mind opened and see how
valuable outside perspectives are! It's so easy get tunnel vision and think
you know best I guess.

\- Secondly... as I said I wrote this in June 2018, and just... kept it... I
guess I was afraid of sharing it to the world, perhaps the audio people would
get mad at me for making mistakes with the audio api (like the fade in/fade
out being linear). Perhaps the javascript people would make fun of me for just
using Vanilla JS.

But if this is impressive in 2020, imagine how impressive it would have been
back in 2018! So I guess my point is. Share your work! Do not be afraid to put
it out there!

\- If anyone is interested on how it is built, and how the interface
complexities are managed, even though it is just plain old school JS that has
the reputation of being notoriously difficult to maintain, I would be happy to
make a write-up shortly, or perhaps give a talk on it.

\- Third... (hopefully that is ok). If you like AudioMass, and like the way it
is built and it performs, perhaps you might enjoy working together with me. We
are doing cutting edge computer vision, and well.. some CRUD stuff too! My
company is hiring (info in my profile). But please be advised that due to
covid-19 things may take longer or may not be fully up to date.

PS. As for license, I will probably choose something like "wtfpl.net". if it
can help you learn something, or build something, go ahead! If you noticed,
the page doesn't have any tracking (I realy don't know how many visitors came
(I also disabled nginx logs)). And of course no ads at all. I 'm just trying
to build cool and useful stuff!

~~~
llimllib
I love the wtfpl, but I recommend the unlicense over it, esp for something
semi-serious like this: [https://unlicense.org/](https://unlicense.org/)

~~~
pantelisk
Thank you for the suggestion! Unlicense does seem much better and their
website has a valid SSL cert, unlike the wtfpl one... So, this is probably the
one! Will update the repo later tonight! Cheers!

~~~
rectang
By choosing a rebel license like the WTFPL or Unlicense, you are going to
limit your world of potential users and collaborators. There are people that
do that deliberately, such as Doug Crockford and the JSON license, but if
you're going to do that, you really should do it from a position of expertise.

To maximize the reach of your program, you would be well-served to select one
of top-ten or top-twenty popular FOSS licenses. I could provide a list but any
list would be biased; just google it.

I have my opinions about which FOSS license I would select, but I'm going to
suppress them because I just want to help you ease into the mainstream.

A decent way to choose would be to look at what community you want to be a
part of and see what the predominant license choice is within that community.

~~~
neunnech
Unlicense is not "a rebel license like the WTFPL".

------
radiowave
Was _really_ not expecting to be impressed by this, but it's excellent. The
inclusion of a spectrogram is a very nice touch.

The ability to preview EQ changes while the audio is playing back is
impresssive, although the x-axis scale on the parametric isn't helpful -
everything below 1kHz is squashed into the left-most 10% of the plot.

Some small nitpicks are that it's currently quite fiddly to use the compressor
without a gain reduction meter, and my usual bugbear with simpler audio
editors: that fade-outs are almost never useful unless you can alter the
curve.

But the fact that this is working so smoothly in a browser at all, and in
Firefox to boot, is really commendable.

~~~
rectang
It also has my usual bugbear in that fades are calculated linearly rather than
logarithmically as humans actually perceive loudness. (Decibels are
logarithmic for a reason.)

How come so many apps get this wrong? This is really basic psychoacoustics,
_and_ linear fades sound terrible!

> _fade-outs are almost never useful unless you can alter the curve._

I agree, but would like to add that you should be altering a logarithmic
curve.

~~~
pantelisk
You are 100% correct. I guess it's because it's a js developer doing audio,
instead of an audio engineer doing js! So I have a lot to learn, most of the
plugins have minor issues, but I 'll be focusing in correcting those when I
get the chance!

~~~
vel0city
I agree with the above posters. Things like normalize as well should also
probably have their value expressed as dB as that's kind of the industry norm
from what I understand.

I do have to say, this is a super cool tool and I've definitely bookmarked it.
I normally use tools like Audacity to quickly record, trim, and normalize
audio tracks so this tool fits my use cases very well. Thanks for sharing!

------
jjice
We have Photopea ([https://www.photopea.com/](https://www.photopea.com/)) for
images, and now we have AudioMass for audio. I love these open source, web
based tools that work fantastic. Great job!

~~~
detaro
Wait, Photopea is open source?!

~~~
edoceo
[https://github.com/photopea/photopea](https://github.com/photopea/photopea)

~~~
detaro
That's a repo with a Readme and 4 image files for the logo...

~~~
edoceo
Yep, that's what I was showing. It's got a GitHub but it's not FOSS

~~~
kupopuffs
Just a link is not really showing. Everyone knows nobody clicks on the links,
we demand instant explanations!

------
mrspeaker
Wow, that's fantastic... one thing I noticed instantly is that (to me) the
UI/UX is so intuitive. I use Audacity a lot, and the UI on that for core
operations: zooming, unzooming, trimming, selecting... is so much more clunky
(I can never figure out how to "unzoom") - it drives me mad every time.

This one one intuitive and natural. I'd have to evaluate how file system
handling worked, but just based on the UI and snappiness - I'd use this over
Audacity for any quick-n-dirty audio editing tasks. Really cool!

~~~
bbx
Agreed. Audacity is great for quick audio editing but the
selecting/dragging/zooming experience is quite annoying. It would be great to
have Ableton’s bird-eye view feature, it’s super intuitive and really
responsive.

------
ArtWomb
Works great! Near-native web audio on the horizon ;)

High Performance Web Audio with AudioWorklet in Firefox 76

[https://hacks.mozilla.org/2020/05/high-performance-web-
audio...](https://hacks.mozilla.org/2020/05/high-performance-web-audio-with-
audioworklet-in-firefox/)

~~~
jordan314
I wonder if iOS is ever going to catch up, I'm still waiting for them to
implement getFloatTimeDomainData(). [https://developer.mozilla.org/en-
US/docs/Web/API/AnalyserNod...](https://developer.mozilla.org/en-
US/docs/Web/API/AnalyserNode/getFloatTimeDomainData)

------
dpflan
This is the GitHub repo:
[https://github.com/pkalogiros/audiomass](https://github.com/pkalogiros/audiomass)
(accessible under the "help" menu)

~~~
skyfaller
Looks like they haven't added a license yet. I hope they do, if this is
intended to be an open source project.
[https://github.com/pkalogiros/AudioMass/issues/1](https://github.com/pkalogiros/AudioMass/issues/1)

~~~
contravariant
They're telling people to please checkout the repo and have fun, which I think
is almost a license in and of itself (of course you are then legally obliged
to have fun should you choose to use the license), but explicit is better than
implicit in these cases.

~~~
Wowfunhappy
"Checkout and have fun" does not say anything about redistribution, however.

------
city41
It appears the entire app was written with vanilla JS. That's just an
observation. I wouldn't have expected that nowadays.

The app is super impressive!

~~~
jacquesm
That's a huge plus in my book. Frameworks tend to obscure what the application
actually does because there is orders of magnitude more framework code than
there is application code, and frameworks tend to be very indirect when going
about their business with 12 different layers hit for a simple operation.

~~~
city41
As a counter, if you look at the code, there's a lot of DOM api calls littered
throughout which obscure what is going on. This could be relieved by pulling
out the DOM manipulation into common constructs that all parts of the app use,
but then you're creating your own framework/library and might be better off
using a battle tested one.

~~~
lucideer
Given how responsive the UI is compared to most modern UIs built in the
"battle tested" frameworks & libraries, I suspect the recommendations in this
comment are all well and good in theory, but not necessarily reflective of
reality in practice.

------
bvm
Reminds me of the audio editor that shipped with Windows...95? Had some great
times with that thing reversing everything in earshot, doing reverse reverb
etc etc

edit: this thing
[https://i.imgur.com/UXqSteO.png](https://i.imgur.com/UXqSteO.png)

~~~
rpastuszak
Ha, I remember how proud I was when I discovered a "hack" to increase the max
recording duration (from 30s to X minutes[⋆]):

1\. record silence

2\. copy paste the recording till you achieve the desired length

3\. start recording from the beginning

On AudioMass and its performance/snappiness: this feels much more smooth than
Audacity on my MBP, so I'll give it a shot soon.

⋆ or: whatever the memory limitations of your PC were

------
ctrager
Please forgive me for being self-centered. I _DO_ think AudioMass is great.
I'm running it locally and I even contributed by posting a legit issue in
github. But here's the self-centered part: The other day I posted a "Show HN"
for something web audio related that I wrote and got crickets so I'd like to
try again:
[https://ctrager.github.io/music_tools](https://ctrager.github.io/music_tools).
Especially check out "Pitch Detector". All three tools are standalone single
HTML files that don't need a server.

~~~
ximeng
These are interesting tools. Pitch detector didn't seem to work too well for
me but no doubt my bad singing. You could probably just show both clefs with
the relevant clef symbol at the beginning rather than making it an option. For
the beat detector, it would be interesting to see average distance from the
beat in order to try to improve. It could be a game following a rhythm easily.

Think for HN you probably need a quick demo that will attract more of the
large number of people who are not necessarily going to use this tool long
term. Give people a hook. Also keep trying, because it's pretty random what
gets voted up on any one day. I think with some development and innovation
this could be a useful tool. You've also not got any contact info which makes
it harder for interested people to get in touch if they like your stuff.

~~~
ctrager
I can't really make it work with singing either, but it works well when I play
violin. My motivation is just pitch, to give feedback to me playing violin or
my wife trying to learn viola.

~~~
Cactus2018
Check out "Intonia", works brilliantly with stringed instruments

~~~
ctrager
I had tried it briefly because my favorite youtube violin teacher Beth
Blackerby recommended it in one of her videos, and it's great. But, I wanted
the experience of coding something myself (I'm retired, hadn't coded in four
years, lockdown has made me antsy) and I wanted something that was a
standalone single HTML file, and I wanted something that felt easier. So, I
ignore the time dimension and paint the notes on the staff the way a player is
used to reading them rather than Intonia's interface which looks more
technical.

------
mikece
My first thought: add WebRTC voice chat and the ability to record all
participants in separate channels... would be awesome for podcast recording!

------
anigbrowl
8/10, very promising. feels like Cooledit/Audition, which was for a long time
the best of its class (Pro T Tools is the industry standard but that's based
on long years of hardware-lock-in). Allow local instances and add Lua or
similar user scripting and you've got a winner. Well done.

------
croisillon
May I ask, what the sample music is? Sounds like a movie score but Shazam
doesn't recognizes it.

~~~
pantelisk
Haha, it's something I wrote a long time ago (around 10 years back). I wrote
it in Cubase and if I recall correctly Symphobia was the primary VST used. I
had way more time back then for music than I do now. If you like the piece
feel free to grab it (test.mp3 in the github repo). Cheers!

~~~
croisillon
Thanks! It's a bummer though: it sounds like a movie I'd like to watch :D

------
gtm1260
I open Audacity about once every 3 months for some random audio editing, this
is definitely a better/more intuitive app. Plus web based is awesome for
something I use so infrequently. Great Work!

~~~
svth
Don't knock Audacity, though. Fantastically useful piece of software.

------
false_kermit
Very cool! I tried doing some signal processing stuff back in the day and got
absolutely discouraged after discovering how much linear algebra was involved.

I particularly appreciate the ability to preview compression. Compression is
probably what I use most when I'm editing audio and having that at my
fingertips without loading Audacity or Ableton would be super nice for quick,
rough changes.

One thing that I'd really like to see would be a de-essing plugin, or even
better a multiband compressor.

------
thinkloop
These are the exact tools I am constantly looking for. Full browser sandbox
for no stress "install", local-first, offline-first, so you own your own data
- then option for locally encrypted cloud backups. I am almost 100% web now, I
use very few installed programs and am constantly trying to get that to zero.
One day someone is going to collect all these best-in-class web tools and make
a proper chromebook where the user owns their own data.

------
kethinov
This would make a good Electron app so it can also be used offline by regular
people who don't want to or are unable to fuss with command line web servers.

~~~
yadco
Or a progressive web app that can be installed and work offline.

~~~
vezycash
It works offline. Click help - Store offline.

Or just click this [https://audiomass.co/index-
cache.html](https://audiomass.co/index-cache.html)

I've tested it. Disconnected wifi went to
[https://audiomass.co](https://audiomass.co) and it worked.

------
TheSpiceIsLife
I dabble from time to time with _mixin rekids_ , and am presently trying to
find an audio editor for simple cut n paste that _Audacity_. Must support
MacOS.

What's is out there? My DuckFu is letting me down in this instance.

I'll give AudioMass a spin over the weekend, and like others have said if it
could be a standalone Electron-based app that would probably work, and happy
to throw a few antipodean dineros at it.

------
dharma1
Would be great if there was a VST like standard for audio effect plugins for
web, so that many web-based audio apps could use the same plugins.

Saw something like that but for synths -
[https://www.webaudiomodules.org/wamsynths/](https://www.webaudiomodules.org/wamsynths/)

~~~
pantelisk
That's insane! I 'm actually working on a lite-daw for web, so this is
extremely interesting to me. However I do not plan to go very far. My angle is
that this should be a tool to experiment and try out things with minimal
friction, then for any serious work, perhaps users can look into professional
solutions. Perhaps also take advantage of the web's collaborative nature and
have multiple users share a session!

There are decades of research, feedback loops and work put into tools such as
FruityLoops, Cubase, ProTools etc, and the thought of reimplementing parts of
it for web is such a daunting task.

~~~
dharma1
Multiplayer would be sweet for a web DAW, it rocks in design tools like Figma.

I think you are right, a light DAW would cover 80% of people's needs. And as
long as you can export the track as midi and audio bounces, you could always
continue it in a native DAW.

I would love to collab if you need UI/UX for this btw? I've worked on audio
and DAW stuff for a long time, as well as open source. What's the best way to
reach?

------
andoma
Features vs page load time is very impressive.

~~~
vezycash
According to the about page, it's 65KB.

------
microcolonel
It'll be very fun over the years, for whoever is tasked with it, to fix all of
the bugs bugs common to audio editors like this.

My favourite one is how, depending on when, resizing the selection while
playing with loop enabled can cause the cursor to escape the selection (!).
That was the first one I checked for when I opened this up.

------
_benj
this brings me back to the days of cool edit pro! (Idk why!) but it is amazing
that you can do that in a browser nowadays!

If I were to be super critical my only pet peeve has to do with the style of
the menu :P The color (dark on light) seems disconnected from the rest of the
app design and those big rounded corners gives the app a little bit of a toy-
ish look (My point of reference for "pro" is something like Adobe Audition,
Presonus StudioOne, Pro Tools, etc... kind of look) But that is just a
personal preference (this is the radius I'm talking about
[https://github.com/pkalogiros/AudioMass/blob/master/src/main...](https://github.com/pkalogiros/AudioMass/blob/master/src/main.css#L61))

But the project look awesome! keep it up!

------
ubercow13
Does this load the whole file into memory while it's being worked on? What if
you tried to load a file that is too big? I wonder with these more complex
productivity web-apps becoming more common, how something like a video editor
might work that needs to work on data too large to put in memory.

~~~
pantelisk
Yes, it is all in memory. I am taking advantage for IndexDB for local drafts.
And localstorage for plugin presets. But it does not match the flexibility of
being able to create lots of big uncompressed files and cache in the disk
while workign on a project.

So everything needs to use lower fidelity settings, or do things like compress
WAV files in a lossless way with LZMA since other avenues are too heavy. I am
not seeing this becoming something like Audacity or Audition replacement, but
a quick tool for modifying audio files on the fly.

------
kpmah
Very nice! I've recently tried covering some similar ground for a side project
([https://forkjam.com/new](https://forkjam.com/new)) so I have an idea of how
much work this is.

I take it you took the approach of using WASM for audio decoders?

------
andai
This is really cool, thanks for sharing!

I'm noticed my CPU fan at full blast and checked my processes (then Chrome
task manager), I had left it open an it was using 80-95% CPU in the
background.

Tested again, it seems to be the spectrum analyzer (even after I pause
playback, or close the analyzer window).

------
jacquesm
This is smack in the path of Audacity, very nice work. Is it possible to load
midi synchronized to an audio file? That's a weak point in Audacity, it can't
really edit the midi as you go through the audio and for some tasks that would
be extremely useful to have.

------
PdTheTech
This is awesome. As an avid past user of Cool Edit 2000 and Adobe Edition 1.5,
I love this project. Fantastic to see something familiar in a browser. As a
bonus it hits me right in the nostalgia. I'll be watching and supporting this!

------
soperj
If i could suggest anything it would be a way to make a selection while
playing. Like hold down shift, press space bar, and then press space bar
again, and it's all selected.

------
inflam52
Great work!!! I've been wanting to do something like this for a while. I'm
glad someone is leveraging the web to build a real open source DAW!

------
dintech
This is great! When working with large files, I'd like zoom in/out to be a bit
snappier. I'd also like right click -> zoom to selection.

------
maxwellito
Very simple, but clean, works like a charm, perfect set of effect and
import/export features. I need to check if it works as a PWA.

Kudos to the creator!

------
kube-system
When I try to play the sample in Brave I only get sound for a couple of
seconds before it goes quiet. In FF it works correctly.

------
wigl
I would love the ability to label and extract sections like in audacity!
That’s the only thing missing from my use case

~~~
pantelisk
You can extract sections (as mp3 by selecting, and then File > Extract mp3 >
current selection). Or File > Save Local Draft (and you can open the selection
as a standalone audio project).

Being able to label things with markers and different colors though would be
fantastic! It's in the plans, once a bit better audio handling of slices (eg
cross-fading, mix-dragging etc) is added!

~~~
wigl
I noticed that and I do think it is nice. I have to extract and transcribe
long sequences, so it would be nice to have the audacity label track feature
to bookmark/label a bunch of sections and then output them as individual files
named by their label along with a .txt. This is audacity's format:

start end label_name

1.02302 2.23193 label_1

You could take it further and have some numeric labeling (audacity doesn't
autofill) and that'd be even nicer. This would be super helpful for working
with speech processing data. Regardless, keep up the good work!

------
kevindeasis
It took me a few seconds on how to use this, but once I figured it out, I was
like, damn, this is pretty cool!

I wish there was a cli for this

------
waprin
Really great project, nice job author, hoping to use it as a starting
point/inspiration for some projects of my own.

------
dsco
Now slap cloud storage, collaborative editing/highlighting and paid accounts
on it - this is impressive software!

~~~
toomuchtodo
Soundcloud meets Github!

------
12bits
This looks really cool, by the nature of my user name I must greedily request
vintage sampler modes. :)

------
goodmachine
Impressive. Back in the day, SoundEdit16 was the thing. I hope they clone or
skin it like that

------
jugg1es
Impressive - always amazed at the low-level stuff you can do in browsers
nowadays. Nice job.

------
bulldog13
How do I delete a highlighted section? I feel like I am missing something
simple.

------
cjohansson
Amazing stuff, thanks for sharing. Works great in my iPhone 6 browser

------
deeblering4
This us great! Kinda reminds me of cool edit pro (two point oooooh)

------
dharma1
nice, was just looking for a free audio editor and could only find things that
look like they're from the 90's (Audacity).

.wav export would be grand!

------
pea
Awesome - kind of reminds me of the Renoise interface!

------
01walid
For a second I thought this is a WebAssembly app :)

Nice job!

------
suyash
Good job, like to see some good tutorials.

------
aswanson
The UI is cool looking.

------
welcometomiami
Really slick! Love this.

------
caiobegotti
Nice spectrum analyzer!

------
xchip
thanks!

