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

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

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

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 year 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)
## MetroMuse โ€” Audio Editor
**Version 0.10.0 (INCOMPLETE BETA)**

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

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

---

## ๐Ÿ“ธ Preview

![Capture](Capture.png)

---
## ๐Ÿค Contributing

MetroMuse is open source and welcomes contributors! You can help by:

- Reporting issues
- Improving existing features
- Refactoring code
- Designing UI components
- Translating to other languages
---

## โœจ Features

### ๐ŸŽš๏ธ Multitrack Support
- Manage multiple audio tracks effortlessly
- Solo, mute, and volume control per track
- Individual color coding and track organization
- Synchronized playback across all tracks
- Easy track naming and management

### ๐Ÿ“Š Enhanced Waveform Visualization
- Interactive, zoomable waveform display
- Adaptive time grids and markers
- Real-time amplitude monitoring
- Smooth zoom, scroll, and scrubbing functionality

### โœ‚๏ธ Audio Editing Tools
- Cut, copy, paste with precision
- Selection-based and track-specific editing
- Multiple undo/redo levels
- Non-destructive editing workflow

### ๐ŸŽ›๏ธ Audio Effects
- Volume gain adjustment
- Fade-in and fade-out effects
- Real-time effect preview
- Per-track parameter control

### โ–ถ๏ธ Advanced Playback
- Synchronized multi-track playback
- Real-time scrubbing and position tracking
- Solo/mute functionality for detailed mixing

### ๐ŸŽจ Modern Interface
- Dark theme with accent color highlights
- Large, accessible UI elements (48x48px)
- Collapsible panels and intuitive navigation
- Enhanced visual feedback

### ๐Ÿ’พ File Format Support
- Import and export: WAV, FLAC, MP3, AAC
- Drag-and-drop audio importing
- Recent files management
- Display of file metadata and information

### ๐Ÿ”ง Under-the-Hood Technical Features
- Sample-accurate editing
- High-quality multi-channel audio processing
- Real-time waveform updates
- Efficient rendering pipeline

---

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

| Component | Status | Notes |
| ---------------- | ------------- | ------------------------------------------------- |
| Waveform Display | ๐ŸŸก Functional | Includes scrubbing, time grid, and markers |
| Multitrack | ๐ŸŸก Functional | Fully functional with controls and organization |
| Editing Tools | ๐ŸŸก Functional | Basic editing tools with undo/redo support |
| Exporting | ๐ŸŸก Functional | WAV, FLAC, MP3, AAC export supported |
| Playback | ๐ŸŸก Functional | Synchronized, real-time multitrack playback |
| UI/UX | ๐ŸŸก Functional | Dark-themed, responsive interface |

---

## ๐Ÿ—‚๏ธ Project Structure

```
MetroMuse/
โ”‚
โ”œโ”€โ”€ src/
โ”‚ โ”œโ”€โ”€ metro_muse.py # Main application
โ”‚ โ”œโ”€โ”€ track_manager.py # Multitrack management
โ”‚ โ”œโ”€โ”€ track_renderer.py # Waveform rendering
โ”‚ โ”œโ”€โ”€ styles.qss # UI styling (QSS format)
โ”‚ โ”œโ”€โ”€ icon.png # App icon (PNG)
โ”‚ โ””โ”€โ”€ icon.ico # App icon (ICO for Windows)
โ”‚
โ”œโ”€โ”€ resources/
โ”‚ โ”œโ”€โ”€ ffmpeg.exe # Audio processing binary
โ”‚ โ”œโ”€โ”€ ffprobe.exe # Media analysis binary
โ”‚ โ””โ”€โ”€ ffplay.exe # Audio playback binary
โ”‚
โ”œโ”€โ”€ requirements.txt # Python dependencies list
โ””โ”€โ”€ README.md # Project documentation
```

---

## ๐Ÿ“ฆ Dependencies

- **PyQt5** โ€“ GUI framework
- **numpy** โ€“ Audio processing
- **matplotlib** โ€“ Waveform visualization
- **pydub** โ€“ Audio file handling
- **librosa** โ€“ Audio analysis
- **sounddevice** โ€“ Audio playback
- **qtsvg** โ€“ SVG icon support
- **python-qss** โ€“ Stylesheet management
- **PyQt5-stubs** โ€“ Type hinting for PyQt5
- **ffmpeg** (external) โ€“ Media processing (MP3, AAC, FLAC support)

---

## ๐Ÿš€ Installation

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

2. Install Python dependencies:
```bash
pip install -r requirements.txt
```

3. Install **ffmpeg**:
- **Windows**:
```bash
winget install ffmpeg
```
Or manually place `ffmpeg.exe`, `ffprobe.exe`, and `ffplay.exe` inside the `resources/` folder.
- **macOS**:
```bash
brew install ffmpeg
```
- **Linux**:
```bash
sudo apt install ffmpeg
```

---

## ๐ŸŽฎ Usage Guide

Run MetroMuse:

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

### Key Operations

| Action | Shortcut/Action |
| ----------------- | ------------------------------- |
| Add Track | "+ Add Track" button |
| Import Audio | "Import Audio" button / Drag-and-drop |
| Delete Track | Click "โœ•" on track header |
| Play/Pause | Spacebar |
| Stop Playback | Esc |
| Rewind | Home key |
| Fast Forward | End key |
| Scrub | Click and drag on waveform |
| Zoom In/Out | Mouse Wheel / Ctrl + Mouse Wheel |
| Pan View | Arrow keys |

---

## ๐Ÿ”ฅ Planned Features

- Spectrum analysis view
- Additional effects: echo, reverb, equalization
- VST plugin support
- Project saving and loading
- Track automation features
- Improved error handling
- In-app user guides and onboarding dialogs

---

## โš ๏ธ Known Issues

- Exporting may fail if **ffmpeg** is not correctly configured
- Some audio effects (echo, reverb) are under active development
- VST plugin support is pending implementation
- Project saving/loading is not yet functional

---

## ๐Ÿ’ป System Requirements

- **Python**: 3.7 or higher
- **External Tools**: ffmpeg (must be installed or included in `resources/`)
- **All listed dependencies** (see [Dependencies](#-dependencies))

---

## ๐Ÿ“„ License

This project is licensed under the **[MIT License](LICENSE)**.

---

## ๐Ÿ‘จโ€๐Ÿ’ป Author

- **Developer**: [Ivรกn Eduardo Chavez Ayub](https://github.com/Ivan-Ayub97)
- **Contact**:
- **Technologies**: Python 3, PyQt5, pydub, librosa

---

## ๐ŸŒŸ Why MetroMuse?

Because **sometimes you just need a simple, powerful editor that works**.
MetroMuse is built to provide a **clean, accessible** environment for audio editingโ€”**open-source, evolving**, and designed with a focus on **what matters most to creators**.