Soundcut is a Progressive Web App which lets you to extract, share, save, download or simply listen to specific moments (a slice
or cut
) of a song or any audio source.
Created and developed by Tim.
- Upload an mp3 file
- Link an external media and extract its audio (using youtube-dl)
- Re-use an existing
slice
, saved on the server or in the browser viaindexedDB
- Download audio source
- Decode the audio data to draw a waveform in a canvas
- Play (looped) / Pause
- Select
slice
boundaries (start / end) using drag and drop - Save/delete the audio source into/from
indexedDB
- Submit a slice - re-draw a waveform just for the selected boundaries
- Download a slice
- Share a slice - save the slice on the server, generate a unique URL
- Save/delete a slice into/from
indexedDB
Soundcut is a mean to experiment manipulating audio files in the browser, be privacy-focused as well as trying to avoid being network-dependant, therefore even though some operations might be more efficiently done on the server (such as decoding audio data and computing waveform points), as much work as possible will be performed in the browser.
Soundcut is meant to be a simple, lightweight and quickly evolving web app. It is mainly built on top of the following tools:
- hyperHTML
- viperHTML for SSR
- hyperhtml-app for client-side routing
- express
- youtube-dl
- mp3-parser
- postgreSQL
nvm use
npm ci
npm run dev
npm run deploy
Soundcut staging is deployed to GANDI Simple Hosting Node.js