pkalogiros / audiomass Goto Github PK
View Code? Open in Web Editor NEWFree full-featured web-based audio & waveform editing tool
Free full-featured web-based audio & waveform editing tool
Great product, congrats.
Small bug, when you try to loop a selection that is only a few milliseconds long, the playbar can sometimes jump past the loop end point, breaking out of the loop.
Hi,
It would be totally awesome if you could provide the tool's features as an API served from a single JS file!
AudioMass is an excellent project, and works well for editing podcast audio. However, for voice-only podcasts, I want to be able to export in lower-quality mp3 bitrates. I commonly use 64 Kbps and 96 Kbps, but why not offer the full range of options:
Thanks!
Hello, thank you for such an amazing project! Very cool tool to learn more advanced things with Web Audio. :)
I was wondering, how hard would it be to implement something like opening and playing/editing multiple audio files at the same time? Is something like this planned?
First off: super cool! Thanks for sharing this.
Apologies if I'm just missing something ...
It seems that I can not make a stereo recording of browser's stereo audio output.
(routing thru vb-cable on M1 mac results in one monophonic track)
Say it isn't so!
Any input (...ideally 2 'ba-dump!) regarding this is much appreciated.
thanks
Why not add "New File" in "File Menu" to create a simple voice recorder.
Thanks for your work!
To be clear this is about playback only and not about permanently modifying the loaded audio.
libgtkiostream and sox-element give a method to save audio to many many different audio formats - including flac, and many others.
You may be interested in giving AudioMass extra audio export functionality ?
https://www.npmjs.com/package/sox-element
https://www.npmjs.com/package/gtkiostream
I would be nice to get a "view clipping" toggle under "view"
Hello .. Why was the program not developed months ago .. Wait all this time for the addition to the Multitrack where the user can hear music and sing along with it
First of all, This is an awesome web app and project really shows the power of the web/web-audio and shows-off your skills.
The Tempo effects differs from the Speed up/down effect by the fact that it does not change the tune, only stretches the selected audio, the algorithm works by adding silence bits when leaving the "Use high quality stretching (slow)" checkbox option unchecked and when it is checked there are no silence bits when stretching short selections by a big factor.
Have you though about or researched if WebAssembly could be used in order to reused already implemented c++ algorithms for effects without re-implementing them in JavaScript?
Also, it would be cool to be able to have the spectrum of the selection, or the entire song available, not just when it's playing.
Use case: be able to easily check if a lossless file (e.g. FLAC) was actually transcoded from a lossy file (e.g. MP3).
Love the editor !
You may be interested in integrating WSOLA into AudioMass ? It is compilable to WASM :
https://github.com/flatmax/gtkiostream/blob/master/src/WSOLA.C#L174-L190
You can give timescale (speed) changes in real time and have them alter the speed of the audio waveform without changing the pitch.
It works like so :
let N = wsola.getSamplesRequired();// read in N frames of audio data
while (cont){
// read in N frames of audio data
for (int n=0; n<N; n++)
for (int m=0; m<channels; m++)
wsola.loadInput(n,m,audioData[m][n]);
// process the audio data
N=wsola.process(timeScale); // timeScale, is the fraction to speed or slow by, N is the amount of audio frames to read for next time
// unload the output audio data https://github.com/flatmax/gtkiostream/blob/master/include/WSOLA.H#L255
for (int n=0; n<wsola.getOutputSize(); n++)
for (int m=0; m<channels; m++)
outputAudio[m][n] = wsola.unloadOutput(n,m);
}
In the future loading and unloading will use the WASM heap and vectors ... but for now it is single value load/unload.
I cloned repo locally and tried loading an mp3 file using the menu File->Load from Computer. Nothing happened. I tried dragging it and it worked fine.
I tested this in Chrome. I didn't see any errors in developer javascript console.
If you zoom in with scroll too much, eventually you just see black. If you can't zoom in that far, try deleting half your audio and zooming in. Keep deleting until you have a small enough sample where you can zoom in and then it dissapears.
Very nice Job you have done !
The UI is very nice.
Thanks a lot for this very good work. ๐
It is not open-source when you do not have a license. A license is needed to grant rights to others or else It is still copyrighted by the author.
I noticed a problem when you have zoomed in. You set the playhead position then hit play and the view scrolls to keep the current playhead position in view. When this happens the playhead origin (not sure what to call it!) and the current playhead position both move relatively to the audio and become misaligned.
I initially noticed this as I thought I had dropped the playhead before a transient, but didn't hear it when I hit play. It seems like the playhead and waveform view had become misaligned.
I was editing an mp3 using macOS Safari 13.1.
(fantastic work overall, by the way ๐ very impressive)
Can it be developed into a multi-track where it can play music on track, record on another track, then edit and save?
I'm using hardware set to 48000Hz sample rate, and I'm on Linux running Jack and the pulse bridge through that.
When I record in AudioMass in Firefox, I get glitches and a pitch offset that I'm almost certain is related to the software trying to operate at 44.1kHz sample rate.
In Chromium, it seems to run successfully at 48kHz.
Any idea what's going on? Many factors, so this may not be an AudioMass issue specifically
Ok, I don't know if this is related to my device (considering I AM doing this on a Chromebook and Chromebooks are pretty much total shit in terms of hardware performance!) Anyway, when I attempt to upload an hour lng audio clip, the entire program (and my computer) freezes, forcing me to restart my computer! But I once tried to upload a 3-hour long audio clip from the same device and that was successful! So why is audiomass failing to upload a 1-hour audio clip, but can upload a 3-hour audio clip?
Edits appear to be destructive, without the ability to undo changes.
Hello! Audiomass is a truly excellent audio editor - super responsive, great UI. I love it! The one thing that I want to do and can't (easily) is to select a portion of the audio - say, a drum loop or vocal sample - and crop out the rest of the track, leaving only the selection. I know that you can "export selection only" but the ability to crop, then edit using effects, inserting silence, etc. would make this a killer sample editor.
Thanks again for putting so much work into this and making it available to everyone!
Having imported a mastered 0db track and exporting it made it click, hitting over 0db
Congratulations on AudioMass, it's mind-blowing that this kind of audio editing can be down in the browser!
It would be even more amazing if the tool could add support for the Native File System API for proper opening and saving. I am the maintainer of browser-nativefs, which adds support for this API in a downward-compatible way. At first sight, the required work would essentially be:
fileOpen()
.fileSave()
.For an app that uses this library in practice, check Excalidraw. The difference to the legacy file managing way is big. You can read up on the difference in this (staged for publishing) article.
Sorry I don't have greater detail. I just wasn't getting any audio, and I suspect it's because I use a non-standard browser.
First up, a quick comment to say I love what you've done here. As someone who has used wave editors for years (fondly remember Steinberg Wavelab but currently limited to using Audacity on the Mac), I really like this tool. It works very nicely and I will aim to use this now instead of Audacity and will probably have some suggestions for things I'd like to see.
One thing that I can see is that there are accessibility issues here with the app, primarily:
The good news is that I work in the field of accessibility and am happy to put in some fixes for this (it's a pleasure to be able to contribute to something that I know I will use and also be able to open this up fully to a wider audience).
Anyway, just a heads-up to let you know that I will be putting together a pull request soon to address some of these issues for you :)
multitracks + tone.js + midi
I love that there's the option of toggling left and right-side speakers.
For those wishing to use this to test surround sound setups, or even to create tracks that utilize 5.1-channel surround sound and above, have you considered adding support for additional channels?
Maybe there could be six rows instead of two, with one row each dedicated toward the front left speaker, the front right speaker, the center speaker, the subwoofer, the rear left speaker, and the rear right speaker?
The repository is public which implies an intent of being open-source but no license is specified making review of the code an issue.
This might however be intended, this page contains some additional information: https://choosealicense.com/no-permission/
If this is a feature then it definitely needs some explicit mention:
I go to https://audiomass.co/ and create a small recording of my own or just using the demo.
Pressing the play button, obviously, plays the recording or demo. Playback volume is fine.
Hitting the play button again, plays the recording again... but the volume is significantly lower, maybe half volume from before. Computer volume setting is not changed.
Hitting play a 3d time plays the recording again but no sound is heard.
Windows 10, Brave browser.
why metronome not working with recorder ?
Love the functions on this so far... Do you know when a multi-track version may be available?
Having an edit option to snap current selection to zero crossings and/or automatically snap to zero crossings while making a selection would be awesome!
Would it be possible to export files as wav also?
Hello, why i can't export the audio in 320?
Only 128, 192 and 256 are available.
that makes no sense for me.
or you make a button "same quality as input"
thank you very much, i use this software/web page every day.
kind regards from germany
Hi,
first of all, the website is awesome, I love it.
Would it be possible to render the spectrum graph for the whole track, similarly to how how the peak volume curve is rendered in the main window? I'd love to use this for spectrum analysis in CTFs and as a preview in other signal processing tasks.
Currently, the spectrum analyzer only shows spectrum of audio as it's playing, not for the whole track.
Great work!
I find it a little unfortunate that the start recording
and finish recording
buttons are in the same spot. When you record something and click the finish
button, it turns into the start
button. So when finishing takes some time and you're not sure if your click on the finish
button was registered, you click again and you might accidentally hit the start
button and your previous recording is lost.
Hello,
I'd like to translate audiomass to my native Dutch. My specific use case is public music academy students and teachers, but I'm sure others could also benefit.
A practical way to organise this may be weblate online translation infrastructure. One of the places that offer hosting of this FOSS platform for free is https://weblate.framasoft.org/ .
Kind regards,
Mark
P.S. Thank you for your work on AudioMass! Eagerly looking forward to #30 !
Hello from France !
Is one of you ma,age to run AudioMass behind Nginx ?
Any idea of the configuration ?
This is what I've tested and does not work :
#AudioMass
location /audiomass
{
rewrite ^/audiomass(/.*) /$1 break;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.1.2:5055/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
}
#/AudioMass
Thanks in advance for your help !
How hard would it be to add .ogg export as an option? I see opening .ogg does not seem to be a problem.
I forgot to fade out a piece of audio I uploaded. Attempting to fade out the very end works except for a tiny tiny bit of audio that is never truly selected therefore the audio always ends in a click no matter what I do, add silence, select all, cut it out, it's impossible to edit the last tiny tiny bit of audio at the end.
As soon as I saw this on twitter I wanted to turn it into a PWA, but I'm struggling to find the time.
In case there is interest, here are a couple of commits that shows how to do it:
Icon and manifest: mrdoob/frame.js@dc2895d
Service Worker (offline mode): mrdoob/frame.js@7091d47
Love the work you have done.
Request to have ability to automate file open process for website file editing. I think tomayac has asked for
Replace this code with a call to fileOpen().
Replace this code with a call to fileSave().
Not sure if this is the same thing.
I have a website where I need to open specific files with audiomass and then save.
If you have a work around I would be grateful.
This is the only thing keeping me from using audiomass right now.
I am a permissions editor and I am contacting you on behalf of eDynamic Learning. We are developing courseware for K-12 students and we're interested in using a screenshot(s) of the Online audio editor. Screenshots would be used to demonstrate how to edit audio for a video game. The image(s) would appear in a course called, Game Design for Chromebooks 1a.
Is this permitted by your organization and what would the Credit/attribution be? Please message me at:
diahannelucas-ext(AT)edynamiclearning(DOT)com. Thanks.
Hey,
first, thanks for building this hugely handy audio editor :).
For my workflow it would be a great addition to be able to change the playback speed (without changing the pitch) to be able to review audio faster than real-time.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.