KIMIX is a PyQt5 desktop audio application with three modes:
Now Playing: large visual playback screenPlaylist: queue-style player where users add tracks and play themEditor: multi-track audio editor with timeline-based clip editing
The app is written in Python and uses pydub for editing/export plus PyQt5 for GUI.
- 3-mode interface: Now Playing / Playlist / Editor
- Add and play local audio tracks in Playlist mode
- Scan a folder to auto-import supported audio files
- Background import/scan with progress + cancel (non-blocking UI)
- Library metadata index (
~/.kimix/library_index.json) for cached waveform/duration reuse - Favorites filter and persistent listening session resume
- Optional 1-5s crossfade transition between playlist tracks
- Next-track preloading for faster non-crossfade transitions
- Startup/System Check panel for dependency diagnostics
- Listen history persistence and sleep timer (Now Playing)
- One-click Share Track Info (copies title + source path/URL)
- Background export with progress + cancel (non-blocking UI)
- Undo / Redo for editor operations
- Project-based multi-track editing in Editor mode
- Non-destructive clip source metadata persisted (
source_path, source ranges, reverse flag) - Source-based clip reconstruction during playback/export render (fallback to cached clip media if source is unavailable)
- Per-track volume control in editor rows (
-24 dBto+12 dB) - Per-clip volume control in editor (
-24 dBto+12 dB) - Cut, copy, paste, delete, split clips
- Drag clips on timeline, snap behavior, track reorder, track rename
- Layered mixing and export
- Playback speed control and optional pitch-change behavior
- Reverse clip to a new row
- Optional splice fades, volume boost, and basic noise reduction
- Microphone recording to a new track row
- Microphone input device selector + live input level meter + optional monitor toggle
- Track mute per row
- Persistent local project autosave (
~/.kimix)
Planned GitHub repository:
https://github.com/robbiecalvin/KIMIX
When available, clone with:
git clone https://github.com/robbiecalvin/KIMIX.git
cd KIMIX- Python
3.11or3.12(recommended)pydubcurrently depends onaudioop, which is removed in Python 3.13+
ffmpeginstalled and available onPATH
- Install Python CLI
# macOS (Homebrew)
brew install python@3.11
# Linux (example Ubuntu)
sudo apt update
sudo apt install -y python3.11 python3.11-venv python3-pip ffmpeg- Create and activate a virtual environment
python3.11 -m venv venv
source venv/bin/activate- Install dependencies
python -m pip install --upgrade pip
python -m pip install -r requirements.txt- Install system audio tools
# macOS
brew install ffmpeg portaudio
# Linux (if not already installed)
sudo apt install -y ffmpeg portaudio19-dev- Launch the app
python audio.py
# or
python -m kimixmacOS:
./scripts/build_macos.shWindows PowerShell:
.\scripts\build_windows.ps1Build output is generated in dist/ via PyInstaller.
KIMIX now includes a browser implementation in:
web/index.htmlweb/styles.cssweb/app.js
What it supports:
- Same 3-mode shell (Now Playing / Playlist / Editor)
- Multi-row editor timeline
- Dedicated top
Final Productrow in its own container - Import local audio, draggable clips across rows, zoom, and edge auto-scroll while dragging
- Auto-removal of empty non-final rows
- In-browser local mix playback
Run locally:
cd web
python3 -m http.server 8080
# open http://localhost:8080Workflow file:
.github/workflows/deploy-web.yml
This deploys web/ to GitHub Pages on push to main.
One-time repo setup in GitHub:
- Open repository
Settings->Pages - Set source to
GitHub Actions - Push to
mainand wait for workflowDeploy KIMIX Web
Live URL will be:
https://<your-github-username>.github.io/<repo-name>/
Use the System Check button in the app header to validate:
- Python version compatibility
- FFmpeg availability
- PyDub import support
- Qt multimedia backend availability
- Mic stack (
numpy+sounddevice)
If required components are missing, KIMIX reports them in plain language.
-
Install Python 3.11 from python.org and ensure
Add python.exe to PATHis enabled. -
Create and activate virtual environment
py -3.11 -m venv venv
.\venv\Scripts\Activate.ps1- Install dependencies
python -m pip install --upgrade pip
python -m pip install -r requirements.txt-
Install FFmpeg and ensure
ffmpeg.exeis in yourPATH. -
Launch
python .\audio.py
# or
python -m kimix- If microphone recording is unavailable, install/fix
numpy+sounddeviceand system audio libraries. - If Playlist playback is unavailable, confirm PyQt multimedia backend support in your environment.
- If MP3 or some formats fail to load/export, verify
ffmpegis installed and onPATH. - App data is stored in
~/.kimix(library, playback session, editor projects, history). - Optional featured catalog source is read from
featured_catalog.json.


