An open API service indexing awesome lists of open source software.

https://github.com/ivan-ayub97/metromuse-pyaudioeditor

A modern audio editor with multitrack capabilities, enhanced waveform visualization, and an intuitive, sleek interface.
https://github.com/ivan-ayub97/metromuse-pyaudioeditor

audio audio-analysis audio-player audio-processing audio-visualizer audioediting editor editor-tool ffmpeg ffmpeg-gui ffprobe pyqt5 pyqt5-desktop-application python waveform

Last synced: about 1 month ago
JSON representation

A modern audio editor with multitrack capabilities, enhanced waveform visualization, and an intuitive, sleek interface.

Awesome Lists containing this project

README

          

# ![MetroMuse](Banner.png)



### Version 0.12.0 โ€” *INCOMPLETE BETA*

> โš ๏ธ **Disclaimer:** *MetroMuse is currently in beta. Some features may be incomplete, unstable, or under development.*

---

## ๐ŸŽต What is MetroMuse?

**MetroMuse** is a **modern, cross-platform audio editor** featuring:

* Multitrack capabilities
* Enhanced waveform visualization
* An intuitive, sleek interface built for creators

---

## โœจ Features Overview

### ๐ŸŽš๏ธ Multitrack Support

* Solo, mute, and volume per track
* Color coding & track naming
* Synchronized playback
* **NEW:** Asynchronous audio loading
* **NEW:** Optimized waveform rendering

### ๐Ÿ“Š Waveform Visualization

* Zoomable, interactive display
* Adaptive time grids & real-time amplitude
* **NEW:** Automatic downsampling
* **NEW:** Performance-based detail levels

### โœ‚๏ธ Editing Tools

* Cut, copy, paste with precision
* Non-destructive edits & track-specific editing
* **NEW:** Enhanced keyboard shortcuts
* **NEW:** Improved error recovery

### ๐Ÿ’พ Project System

* **NEW:** `.mmp` project save/load
* **NEW:** Recent projects manager
* **NEW:** Auto-save & change tracking
* **NEW:** Project templates/presets

### ๐Ÿ”ง Performance Monitoring

* **NEW:** Real-time CPU/RAM usage
* **NEW:** Quality/Performance modes
* **NEW:** System optimization engine

### ๐Ÿ›ก๏ธ Error Handling

* **NEW:** Detailed logging system
* **NEW:** User-friendly error dialogs
* **NEW:** Auto recovery & warning prompts

### ๐ŸŽ›๏ธ Audio Effects

* Volume, fade in/out, preview in real-time
* Per-track effect control

### โ–ถ๏ธ Playback

* Scrubbing & synced playback
* **NEW:** Optimized multitrack engine

### ๐ŸŽจ UI/UX

* Dark theme, high-contrast icons (48ร—48 px)
* **NEW:** Context-aware window title
* **NEW:** Streamlined shortcuts

### ๐Ÿ’พ File Formats

* Supports WAV, MP3, AAC, FLAC
* Drag-and-drop audio + metadata support
* **NEW:** Better format handling

### โš™๏ธ Technical Highlights

* Sample-accurate editing
* Real-time waveform rendering
* **NEW:** Memory-efficient processing
* **NEW:** Background tasking
* **NEW:** Smart resource management

---

## ๐Ÿ› ๏ธ Development Status (v0.12.0)

| Component | Status | Notes |
| ------------------- | ------------- | --------------------------------------- |
| Waveform Display | ๐ŸŸข Enhanced | Scrubbing, markers, optimized rendering |
| Multitrack System | ๐ŸŸข Enhanced | Full controls, async loading |
| Editing Tools | ๐ŸŸข Enhanced | Undo/redo, improved interaction |
| Project Management | ๐ŸŸข New | `.mmp` format, autosave, templates |
| Error Handling | ๐ŸŸข New | Logging, dialogs, recovery |
| Performance Monitor | ๐ŸŸข New | Realtime CPU/memory usage |
| Exporting | ๐ŸŸก Functional | Supports WAV, MP3, AAC, FLAC |
| Playback | ๐ŸŸก Enhanced | Real-time, multitrack improvements |
| UI/UX | ๐ŸŸข Enhanced | Shortcuts, responsiveness, polish |

---

## ๐Ÿ“ธ Interface Preview

### ๐Ÿ”น New Icon

![Icon](src/icon.ico)

### ๐Ÿ”น General UI

![General UI](Captures/General_UI.png)

### ๐Ÿ”น Effects Options

![Effects Options](Captures/Effects_Options.png)

### ๐Ÿ”น Quick Effects Menu

![Quick Effects](Captures/Quick_Effects.png)

### ๐Ÿ”น Audio Effects Studio

![Audio Effects](Captures/Audio_Effects.png)
![Audio Effects 2](Captures/Audio_Effects2.png)
![Audio Effects 3](Captures/Audio_Effects3.png)

### ๐Ÿ”น File & Edit Menus

![File Options](Captures/File_Options.png)
![Edit Options](Captures/Edit_Options.png)

### ๐Ÿ”น View Menu

![View Options](Captures/View_Options.png)
![View Options 2](Captures/View_Options2.png.png)
![View Options 3](Captures/View_Options3.png.png)

### ๐Ÿ”น Shortcuts & About

![Shortcuts](Captures/Shortcuts_UI.png)
![About](Captures/About_UI.png)

---

## ๐Ÿ“ฆ Dependencies

### Core Libraries

* `PyQt5` (>=5.15.0)
* `numpy` (>=1.21.0)
* `matplotlib` (>=3.5.0)
* `pydub` (>=0.25.0)
* `librosa` (>=0.9.0)
* `sounddevice` (>=0.4.0)
* `scipy` (>=1.7.0)

### Optional Enhancements

* `psutil` (>=5.8.0) โ€” system monitoring
* `PyQt5-stubs` โ€” for development with type hinting

### External Tools

* **ffmpeg** โ€” for MP3, AAC, FLAC support

* Windows: binaries included in `resources/`
* Linux/macOS: install via package manager or [ffmpeg.org](https://ffmpeg.org)

---

## ๐Ÿš€ Installation

1. **Clone the repository:**

```bash
git clone https://github.com/Ivan-Ayub97/MetroMuse-AudioEditor.git
cd MetroMuse
```

2. **Install required Python packages:**

```bash
pip install -r requirements.txt
```

3. **Install ffmpeg (Windows):**

```bash
winget install ffmpeg
```

Then, copy `ffmpeg.exe`, `ffprobe.exe`, and `ffplay.exe` into the `resources/` folder.

---

## ๐ŸŽฎ Usage

### Launch the App

```bash
python src/metro_muse.py
```

### ๐Ÿ—‚๏ธ Project Shortcuts

| Action | Shortcut |
| ------------ | ------------ |
| New Project | Ctrl+N |
| Open Project | Ctrl+Shift+O |
| Save Project | Ctrl+S |
| Save As | Ctrl+Shift+S |

### ๐ŸŽง Audio Tasks

| Action | Shortcut / Action |
| ------------ | --------------------------------------- |
| Import Audio | Ctrl+O / Drag-and-drop / "Import Audio" |
| Export Audio | Ctrl+E |
| Add Track | "+ Add Track" |
| Delete Track | Click "โœ•" in header |

### โฏ Playback Controls

| Action | Shortcut |
| ------------ | --------------------- |
| Play/Pause | Spacebar |
| Stop | Esc |
| Rewind | Home |
| Fast Forward | End |
| Scrub | Click + Drag Waveform |

### โœ‚๏ธ Edit Commands

| Action | Shortcut |
| ------ | -------- |
| Cut | Ctrl+X |
| Copy | Ctrl+C |
| Paste | Ctrl+V |
| Undo | Ctrl+Z |
| Redo | Ctrl+Y |

### ๐Ÿงญ Navigation

| Action | Shortcut |
| --------- | ------------------- |
| Zoom In | Ctrl++ / Wheel Up |
| Zoom Out | Ctrl+- / Wheel Down |
| Pan Left | โ† Arrow |
| Pan Right | โ†’ Arrow |

---

## ๐Ÿ”ฅ Recent Enhancements (v0.12.0)

* โœ… `.mmp` project format with full save/load
* โœ… Auto-save with tracking
* โœ… Detailed error logging
* โœ… Real-time performance monitor
* โœ… Async audio file handling
* โœ… Memory-optimized waveform renderer
* โœ… Shortcut improvements

---

## ๐Ÿšง Upcoming Features

* Spectrum analyzer
* VST plugin support
* Track automation
* MIDI input
* Recording interface
* Effect chain manager
* Export profiles/settings
* In-app guides/tutorials
* Full theme customization

---

## โš ๏ธ Known Issues

* Exporting fails if `ffmpeg` isnโ€™t properly set up
* Echo/reverb effect modules still in progress
* No VST support yet
* Performance dips with large files (>500MB)
* Preview lag possible on low-spec hardware

---

## ๐Ÿ’ป System Requirements

* **Python**: 3.7+
* **FFmpeg**: Installed or placed in `resources/`
* See [Dependencies](#-dependencies) section above

---

## ๐Ÿ—‚๏ธ Project Structure

```
MetroMuse/
โ”œโ”€โ”€ Captures/ # Screenshots of the interface
โ”‚ โ””โ”€โ”€ ...
โ”‚
โ”œโ”€โ”€ src/ # Main source code
โ”‚ โ”œโ”€โ”€ metro_muse.py # Main entry point
โ”‚ โ”œโ”€โ”€ audio_effects.py # Audio processing effects
โ”‚ โ”œโ”€โ”€ error_handler.py # Error handling utilities
โ”‚ โ”œโ”€โ”€ performance_monitor.py # Performance tracking
โ”‚ โ”œโ”€โ”€ project_manager.py # Project loading/saving logic
โ”‚ โ”œโ”€โ”€ track_manager.py # Handles audio tracks
โ”‚ โ”œโ”€โ”€ track_renderer.py # Track visualization or rendering
โ”‚ โ”œโ”€โ”€ ui_manager.py # GUI management
โ”‚ โ”œโ”€โ”€ styles.qss # Qt Style Sheet
โ”‚ โ”œโ”€โ”€ icon.png # App icon (PNG)
โ”‚ โ””โ”€โ”€ icon.ico # App icon (ICO)
โ”‚
โ”œโ”€โ”€ resources/ # Bundled third-party binaries
โ”‚ โ”œโ”€โ”€ ffmpeg.exe
โ”‚ โ”œโ”€โ”€ ffplay.exe
โ”‚ โ””โ”€โ”€ ffprobe.exe
โ”‚
โ”œโ”€โ”€ requirements.txt # Python dependencies
โ”œโ”€โ”€ README.md # Project overview
โ”œโ”€โ”€ CHANGELOG.md # Version history
โ”œโ”€โ”€ LICENSE # License information
โ”œโ”€โ”€ CODE_OF_CONDUCT.md # Contributor behavior guidelines
โ”œโ”€โ”€ CONTRIBUTING.md # Guidelines for contributing
โ””โ”€โ”€ SECURITY.md # Security policies and contact

```


---

## ๐Ÿค Contributions

We welcome your help to improve MetroMuse!

1. Fork the repo
2. Create a new branch for your feature or fix
3. Submit a **pull request** with a clear description

๐Ÿ’ฌ Bug reports, ideas, or questions?
๐Ÿ“ง Contact: [negroayub97@gmail.com](mailto:negroayub97@gmail.com)

---

## ๐Ÿ‘ค Author

**Ivรกn Eduardo Chavez Ayub**
๐Ÿ”— [GitHub](https://github.com/Ivan-Ayub97)
๐Ÿ“ง [negroayub97@gmail.com](mailto:negroayub97@gmail.com)
๐Ÿ› ๏ธ Python, PyQt5, pydub, librosa

---

## ๐ŸŒŸ Why MetroMuse?

Because sometimes you just need a **simple, powerful editor that works**.
**MetroMuse** is built with **focus, clarity, and creativity in mind** โ€” open-source, evolving, and creator-driven.