Skip to content

KIMIX is a clonable hybrid audio platform that runs as both a standalone Python application and a Web Audio browser-based listening environment. Clean. Accurate. No fluff.

Notifications You must be signed in to change notification settings

robbiecalvin/KIMIX

Repository files navigation

KIMIX

KIMIX is a PyQt5 desktop audio application with three modes:

  • Now Playing: large visual playback screen
  • Playlist: queue-style player where users add tracks and play them
  • Editor: 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.

Screenshots

Now Playing

Now Playing

Playlist

Playlist

Editor

Editor

Features

  • 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 dB to +12 dB)
  • Per-clip volume control in editor (-24 dB to +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)

Repository

Planned GitHub repository:

  • https://github.com/robbiecalvin/KIMIX

When available, clone with:

git clone https://github.com/robbiecalvin/KIMIX.git
cd KIMIX

Requirements

  • Python 3.11 or 3.12 (recommended)
    • pydub currently depends on audioop, which is removed in Python 3.13+
  • ffmpeg installed and available on PATH

Setup (macOS / Linux)

  1. 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
  1. Create and activate a virtual environment
python3.11 -m venv venv
source venv/bin/activate
  1. Install dependencies
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
  1. Install system audio tools
# macOS
brew install ffmpeg portaudio

# Linux (if not already installed)
sudo apt install -y ffmpeg portaudio19-dev
  1. Launch the app
python audio.py
# or
python -m kimix

Build Standalone App

macOS:

./scripts/build_macos.sh

Windows PowerShell:

.\scripts\build_windows.ps1

Build output is generated in dist/ via PyInstaller.

Browser Build (HTML/CSS/JS)

KIMIX now includes a browser implementation in:

  • web/index.html
  • web/styles.css
  • web/app.js

What it supports:

  • Same 3-mode shell (Now Playing / Playlist / Editor)
  • Multi-row editor timeline
  • Dedicated top Final Product row 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:8080

Deploy Browser Build To GitHub Pages

Workflow file:

  • .github/workflows/deploy-web.yml

This deploys web/ to GitHub Pages on push to main.

One-time repo setup in GitHub:

  1. Open repository Settings -> Pages
  2. Set source to GitHub Actions
  3. Push to main and wait for workflow Deploy KIMIX Web

Live URL will be:

  • https://<your-github-username>.github.io/<repo-name>/

First Run Diagnostics

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.

Setup (Windows PowerShell)

  1. Install Python 3.11 from python.org and ensure Add python.exe to PATH is enabled.

  2. Create and activate virtual environment

py -3.11 -m venv venv
.\venv\Scripts\Activate.ps1
  1. Install dependencies
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
  1. Install FFmpeg and ensure ffmpeg.exe is in your PATH.

  2. Launch

python .\audio.py
# or
python -m kimix

Notes

  • If microphone recording is unavailable, install/fix numpy + sounddevice and 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 ffmpeg is installed and on PATH.
  • App data is stored in ~/.kimix (library, playback session, editor projects, history).
  • Optional featured catalog source is read from featured_catalog.json.

Releases

No releases published

Packages

No packages published