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 :)
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.
Are you open to a couple of feature suggestions from someone who uses Audacity for scientific applications?
1. An port of Audacity's "Noise Reduction" filter. I have done this once [0] (with some difficulty and no doubt with errors) and I am so tempted to just translate it to JavaScript and put up a PR, but I'm slammed right now.
2. It would be very useful to be able to view the spectrograph as an alternative to the waveform, rather than having it live in a separate "spectrum analyzer" pane. Especially if zooming along the frequency axis were implemented, this would make it much more useful for, well, spectrum analysis.
Thank you for making this. It's impressive in its own right but doubly so as a web application.
Those are both great ideas, especially the noise reduction function might be something that makes this tool quite useful for quick recordings! I actually tried implementing noise reduction algorithms in the past, but sadly could not get it to work properly. Maybe time to revisit! (ditto about the spectograms too)
Soundforge on a 486 100Mhz was already pretty fast at editing a single track of audio. It's amazing how much heavy frameworks have warped our perception of normal interactivity.
I did not want to bind control/command key as it is used by the browser itself (eg control + t opens a new tab). So instead I used the shift key, (so shift + A = select all, shift + C = copy, shift + V = paste, etc).
Really hoping you add in spectrum editing, too, because waveforms are fine, but the power of RX and tools like it is that you can view the FFT spectrum and cull parts that are entirely useless (cutting out hums, >12k painful harmonics, etc =)
Right now no, but it would be very useful so i 'd like to add this, since you can use the keyboard to control the menu... (except well... opening it!). Any preferred key you 'd like this assigned to?
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!
I'd avoid WTFPL if you are serious about this as an open source project.
Google publishes their internal open source policy[1], i.e., what open source licenses can be used in Google software. I think it is a solid reference for what a good corporate open source policy is. It explains the reasoning, it isn't some crazy enterprise things that bans all open source (I've seen that), and it isn't some free-wheeling startup that allows everything with no scrutiny.
They ban the use of WTFPL code[2], and ban contributions to WTFPL code.
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!
Yes! Flac support is important, thank you for the suggestion. I would expect it to be already supported https://caniuse.com/#search=flac and I am just using web audio functions it should decode fine (but it's not). Maybe I am overzealously filtering for formats!
And performance is fine, but it can be so but soooo much better! Like just by adding sprinkling some wasm or asmjs in the "onaudioprocess" loops, to speed up the buffer traversing loops and escape the dreaded garbage collector!
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.
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.
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!
> The ability to preview EQ changes while the audio is playing back is impresssive
Comments like this surprise me, but probably because the lightest weight thing I'll spin up for audio work is Reaper.
The idea of anything but online rendering for user controlled DSP wouldn't cross my mind - it always aggravates me when I have to do it (there's a few older tools I use where it's the only way to do things like time/pitch edits).
> everything below 1kHz is squashed into the left-most 10% of the plot
Very specifically you want a semilog plot (use center bin frequency, not edge of the bin to avoid the 0 problem) or if you're really fancy, constant-Q/mel/bark scales. Grid should be Frequency = [(1:9)e(1:3),10e3 20e3], Magnitude = [-96:6:0].
Very helpful if you use an exponential average on the bins for meter ballistics.
What was notable to me about the live preview is that a browser-based tool was able to do it convincingly - not that it's an impressive feature per se.
We have Photopea (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!
Along similar lines, I have been wondering if there are any web-based DAWs or 3D modeler-renderers to check out. It seems like it's probably only a matter of time at this point, anyway. Even if not FOSS, open formats would be great.
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!
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.
I hope it lives up to its promises - one thing I noticed is using Web Audio on mobile devices is that I get sudden drops and crackling even with the simplest configurations which can't possibly affect the CPU to the point where they are the root cause.
Interestingly, no such issues on desktop - at least not until I add some heavy processing.
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.
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.
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.
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
sndrec32.exe - I think it's last appearance was Windows XP (or maybe 7, I don't have either to check).
It a shame it's gone tbh, it was a REALLY quick way to just playback an audio file, without all that extra baggage that later playback apps had (iTunes clones).
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. Especially check out "Pitch Detector". All three tools are standalone single HTML files that don't need a server.
Edit: another way I like to look at this is that HN itself is a list, and posting a list to a list adds a layer of indirection that mostly never gets traversed.
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.
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.
I actually looked into code of your metronome to see how did you solve timing issues. I once tried to implement drum machine in JS and run into that setTimeout/setInterval are very very relaxed about precision.
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.
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!
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!
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.
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.
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.
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.
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.
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?
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...)
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.
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.
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).
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.
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!
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.
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!
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!
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.
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 :)
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.
When can have we web midi (and no not sysex ;)
Sooooo?
15 replies →
Will we get jack support back on Linux one day ? :/
24 replies →
Are you open to a couple of feature suggestions from someone who uses Audacity for scientific applications?
1. An port of Audacity's "Noise Reduction" filter. I have done this once [0] (with some difficulty and no doubt with errors) and I am so tempted to just translate it to JavaScript and put up a PR, but I'm slammed right now.
2. It would be very useful to be able to view the spectrograph as an alternative to the waveform, rather than having it live in a separate "spectrum analyzer" pane. Especially if zooming along the frequency axis were implemented, this would make it much more useful for, well, spectrum analysis.
Thank you for making this. It's impressive in its own right but doubly so as a web application.
[0] https://github.com/robin-labs/robin/blob/master/noisereduce/...
Those are both great ideas, especially the noise reduction function might be something that makes this tool quite useful for quick recordings! I actually tried implementing noise reduction algorithms in the past, but sadly could not get it to work properly. Maybe time to revisit! (ditto about the spectograms too)
Ooh, I actually was looking for a js noise reduction library recently. I might just translate it and put it up myself. :)
The next plans are - redo drawing library to further improve performance!
I'm amazed that you still have ideas regarding improvements here, because at least the selection performance is buttery-smooth even on a phone.
Great job, very useful product.
Soundforge on a 486 100Mhz was already pretty fast at editing a single track of audio. It's amazing how much heavy frameworks have warped our perception of normal interactivity.
2 replies →
Very cool.
Any particular reason you're not using standard keys for cut/copy/paste/select all etc...?
I did not want to bind control/command key as it is used by the browser itself (eg control + t opens a new tab). So instead I used the shift key, (so shift + A = select all, shift + C = copy, shift + V = paste, etc).
4 replies →
Please, specify license of your code, e.g. GPL3.
Multi-track! That would be awesome! Take you time tho, keep the pleasure of working on it and don't say yes to all feature requests.
Also, looking at the page load and see less than 80Kb transferred: this is absolutely beautiful! Amazing work!
This is one of the coolest web apps I've ever seen. How it handles multiple windows, docking, local drafts. Wow, well done!
Really hoping you add in spectrum editing, too, because waveforms are fine, but the power of RX and tools like it is that you can view the FFT spectrum and cull parts that are entirely useless (cutting out hums, >12k painful harmonics, etc =)
What's RX?
4 replies →
This is great, thanks. Is there a way to access the menu via a key shortcut?
Right now no, but it would be very useful so i 'd like to add this, since you can use the keyboard to control the menu... (except well... opening it!). Any preferred key you 'd like this assigned to?
1 reply →
You should make your modal/dialogs close when the escape key is pressed.
politely asking for more formats too, it won't load my flacs
presumably it loads whatever the browser can natively load. I don't think flac is one of those?
2 replies →
Well done, and thanks for making it available so easily.
Slick UI!
Congrats!
No keyboard cut, copy and paste?
The keyboard shortcuts are signalled in the menu; they are Shift-C and Shift-V
Nice job. It is a very useful editor.
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!
I'd avoid WTFPL if you are serious about this as an open source project.
Google publishes their internal open source policy[1], i.e., what open source licenses can be used in Google software. I think it is a solid reference for what a good corporate open source policy is. It explains the reasoning, it isn't some crazy enterprise things that bans all open source (I've seen that), and it isn't some free-wheeling startup that allows everything with no scrutiny.
They ban the use of WTFPL code[2], and ban contributions to WTFPL code.
[1] https://opensource.google/docs/thirdparty/licenses/
[2] https://opensource.google/docs/thirdparty/licenses/#wtfpl-no...
I love the wtfpl, but I recommend the unlicense over it, esp for something semi-serious like this: https://unlicense.org/
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!
2 replies →
This is great! I’d love to help contribute. Would you be interested in adding flac support?
Imagine the future interface with flac + svg + you’re already well-performant foundation with audio mass
Yes! Flac support is important, thank you for the suggestion. I would expect it to be already supported https://caniuse.com/#search=flac and I am just using web audio functions it should decode fine (but it's not). Maybe I am overzealously filtering for formats!
And performance is fine, but it can be so but soooo much better! Like just by adding sprinkling some wasm or asmjs in the "onaudioprocess" loops, to speed up the buffer traversing loops and escape the dreaded garbage collector!
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.
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.
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!
2 replies →
> The ability to preview EQ changes while the audio is playing back is impresssive
Comments like this surprise me, but probably because the lightest weight thing I'll spin up for audio work is Reaper.
The idea of anything but online rendering for user controlled DSP wouldn't cross my mind - it always aggravates me when I have to do it (there's a few older tools I use where it's the only way to do things like time/pitch edits).
> everything below 1kHz is squashed into the left-most 10% of the plot
Very specifically you want a semilog plot (use center bin frequency, not edge of the bin to avoid the 0 problem) or if you're really fancy, constant-Q/mel/bark scales. Grid should be Frequency = [(1:9)e(1:3),10e3 20e3], Magnitude = [-96:6:0].
Very helpful if you use an exponential average on the bins for meter ballistics.
What was notable to me about the live preview is that a browser-based tool was able to do it convincingly - not that it's an impressive feature per se.
It's quite impressive. Dare I have the audacity to say it rivals Audacity?
We have Photopea (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!
Wait, Photopea is open source?!
It's not, though the author [0] posts here from time to time and it's still free software.
https://news.ycombinator.com/user?id=IvanK_net
https://github.com/photopea/photopea
4 replies →
Along similar lines, I have been wondering if there are any web-based DAWs or 3D modeler-renderers to check out. It seems like it's probably only a matter of time at this point, anyway. Even if not FOSS, open formats would be great.
Now just need a solid video editor!
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!
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.
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...
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...
I hope it lives up to its promises - one thing I noticed is using Web Audio on mobile devices is that I get sudden drops and crackling even with the simplest configurations which can't possibly affect the CPU to the point where they are the root cause.
Interestingly, no such issues on desktop - at least not until I add some heavy processing.
This is the GitHub repo: https://github.com/pkalogiros/audiomass (accessible under the "help" menu)
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
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.
1 reply →
Absolutely agree: the repo is active so waiting a license to be pushed.
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!
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.
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.
1 reply →
Noticed that too!
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
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
sndrec32.exe - I think it's last appearance was Windows XP (or maybe 7, I don't have either to check).
It a shame it's gone tbh, it was a REALLY quick way to just playback an audio file, without all that extra baggage that later playback apps had (iTunes clones).
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. Especially check out "Pitch Detector". All three tools are standalone single HTML files that don't need a server.
Part of your problem is that you submitted a list (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...). If you email hn@ycombinator.com we can give you some tips on how to repost!
Edit: another way I like to look at this is that HN itself is a list, and posting a list to a list adds a layer of indirection that mostly never gets traversed.
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.
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.
2 replies →
All the tools have links at the bottom to their respective github repos, so contact via github.
I actually looked into code of your metronome to see how did you solve timing issues. I once tried to implement drum machine in JS and run into that setTimeout/setInterval are very very relaxed about precision.
My first thought: add WebRTC voice chat and the ability to record all participants in separate channels... would be awesome for podcast recording!
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.
May I ask, what the sample music is? Sounds like a movie score but Shazam doesn't recognizes it.
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!
Thanks! It's a bummer though: it sounds like a movie I'd like to watch :D
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!
Don't knock Audacity, though. Fantastically useful piece of software.
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.
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.
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.
Or a progressive web app that can be installed and work offline.
It works offline. Click help - Store offline.
Or just click this https://audiomass.co/index-cache.html
I've tested it. Disconnected wifi went to https://audiomass.co and it worked.
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.
Features vs page load time is very impressive.
According to the about page, it's 65KB.
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/
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.
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?
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...)
But the project look awesome! keep it up!
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.
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.
Very nice! I've recently tried covering some similar ground for a side project (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?
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).
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.
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!
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.
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.
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!
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!
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.
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
Really great project, nice job author, hoping to use it as a starting point/inspiration for some projects of my own.
I would love the ability to label and extract sections like in audacity! That’s the only thing missing from my use case
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!
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!
Now slap cloud storage, collaborative editing/highlighting and paid accounts on it - this is impressive software!
Soundcloud meets Github!
This looks really cool, by the nature of my user name I must greedily request vintage sampler modes. :)
Impressive. Back in the day, SoundEdit16 was the thing. I hope they clone or skin it like that
Impressive - always amazed at the low-level stuff you can do in browsers nowadays. Nice job.
How do I delete a highlighted section? I feel like I am missing something simple.
Amazing stuff, thanks for sharing. Works great in my iPhone 6 browser
This us great! Kinda reminds me of cool edit pro (two point oooooh)
Awesome - kind of reminds me of the Renoise interface!
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!
For a second I thought this is a WebAssembly app :)
Nice job!
Good job, like to see some good tutorials.
Really slick! Love this.
The UI is cool looking.
Nice spectrum analyzer!
thanks!
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.
nice work