A professional-grade, browser-based audio editor built with Flask & WaveSurfer.js
Cut β’ Trim β’ Fade β’ Normalize β’ Reverse β’ Export β all from your browser. No signup. No cloud.
No subscriptions. No uploads to third-party servers. No account required. Your audio files never leave your machine β everything is processed locally on your own server.
| π Privacy-First | π€ Local AI Tools | β‘ Feature-Rich | π Browser-Based |
|---|---|---|---|
| Files stay on your server β never sent to cloud APIs | Silence detection, Transcript generator, auto-trim, BPM, and noise reduction (Runs 100% on CPU, even on resource-constrained devices) | Multi-region cutting, effects, undo/redo, mic recording | Works on any device with a browser β no app install |
| Feature | Description |
|---|---|
| π― Multi-Region Cutting | Create unlimited cut regions on the waveform β each independently adjustable |
| π Audio Effects | Fade In, Fade Out, Normalize (loudness leveling), Reverse |
| π€ Flexible Export | Export as MP3 (320kbps) or WAV β merged or as separate ZIP files |
| ποΈ Microphone Recording | Record audio directly from your browser microphone |
| π±οΈ Drag & Drop Upload | Drop your audio or video file directly onto the page |
| β©οΈ Undo/Redo | Full undo system (Ctrl+Z) for all region operations |
| β¨οΈ Keyboard Shortcuts | Space, Delete, Ctrl+Z, β / β, M, ? |
| π± Fully Responsive | Works on mobile, tablet, and desktop |
| π¨ Premium Design | Glassmorphism UI β clean, modern, professional |
| π€ AI-Powered Analysis | Local silence detection, auto-trim, beat tracking (BPM), voice activity detection (VAD), speech-to-text transcription (requires openai-whisper), and local noise reduction β runs 100% on CPU |
# 1. Clone the repository
git clone https://github.com/ArPaN-DS/Audio_Cutter.git
cd Audio_Cutter
# 2. Create and activate a virtual environment
python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Configure environment
cp .env.example .env
# Edit .env and set your FLASK_SECRET_KEY
# 5. Run the app
python app.pyπ Open β http://localhost:5000
π Need more help? See the full setup guide β
| Layer | Technology |
|---|---|
| Backend | Python 3.9+, Flask 3.x |
| Audio Engine | Pydub + FFmpeg |
| Frontend | HTML5, CSS3, Vanilla JavaScript |
| Waveform | WaveSurfer.js v7 (Regions + Timeline plugins) |
| Fonts | Google Fonts β Inter |
| Icons | Font Awesome 6 |
| Logging | PostgreSQL via psycopg2 (optional) |
| Shortcut | Action |
|---|---|
Space |
Play / Pause |
Double-Click |
Add new region on waveform |
Click Region |
Select a region |
Delete |
Remove selected region |
Ctrl + Z |
Undo last action |
β / β |
Skip back / forward 5 seconds |
M |
Mute / Unmute |
? |
Show shortcuts panel |
Audio_Cutter/
βββ app.py # Flask backend β routes & audio processing
βββ ai_processor.py # Local AI processing engine (silence, beats, denoise, speech detection)
βββ logger.py # PostgreSQL upload logger (optional)
βββ requirements.txt # Python dependencies
βββ .env.example # Environment configuration template
βββ CHANGELOG.md # Version history
β
βββ static/
β βββ style.css # Design system (1900+ lines)
β βββ script.js # Frontend JS β WaveSurfer, regions, UX (700+ lines)
β βββ logo.png # App logo
β
βββ templates/
β βββ index.html # Main HTML template (Jinja2)
β
βββ .github/
β βββ workflows/ci.yml # GitHub Actions CI β linting
β βββ ISSUE_TEMPLATE/ # Bug report & feature request forms
β βββ PULL_REQUEST_TEMPLATE.md
β
βββ docs/
β βββ SETUP.md # Detailed setup guide
β βββ PRODUCTION.md # Production deployment guide
β βββ USER_MANUAL.md # End-user documentation
β βββ CONTRIBUTING.md # Contribution guidelines
β
βββ uploads/ # Temporary uploaded files (auto-cleaned)
βββ processed/ # Temporary processed output files
βββ logs/ # Application logs
| Document | Description |
|---|---|
| π Setup Guide | Step-by-step setup for beginners |
| π Production Guide | Deploy to a real server |
| π User Manual | How to use every feature |
| π€ Contributing | How to contribute to this project |
| π Changelog | Version history |
| π Security | Vulnerability reporting policy |
Copy .env.example to .env and update values:
cp .env.example .env| Variable | Default | Description |
|---|---|---|
FLASK_SECRET_KEY |
(required) | Session secret key β generate with python -c "import secrets; print(secrets.token_hex(32))" |
FLASK_PORT |
5000 |
Server port |
DB_PASSWORD |
β | PostgreSQL password (optional logging) |
Planned features for upcoming releases:
- v1.1 β Waveform zoom controls + speed adjustment (0.5Γβ2Γ)
- v1.2 β Local AI integrations (Silence detection, auto-trim, BPM, denoise, Whisper transcription)
- v1.3 β Batch file processing (multiple files in one session)
- v1.4 β Audio merge from multiple source files
- v1.5 β Dark / Light mode toggle
- v2.0 β Docker one-command deployment
π‘ Have an idea? Open a feature request β
Contributions are very welcome! Whether it's a bug fix, a new feature, or improved documentation:
- Fork the repo
- Create your branch:
git checkout -b feat/your-feature - Commit your changes:
git commit -m "feat: add awesome feature" - Push & open a Pull Request
See CONTRIBUTING.md for full guidelines.
This project is licensed under the MIT License β see the LICENSE file for details. Free to use, modify, and distribute.
Made with β€οΈ by ArPaN-DS
If this project helped you, please consider giving it a β β it means a lot!
