Skip to main content

CLI Audio Analyzer for Music Producers - DnB, Techno, House

Project description

mixref

Tests Documentation Code Quality codecov PyPI version Python Versions License: MIT Documentation Status

CLI Audio Analyzer for Music Producers

Status: v0.1.0 Published! 🎉

A sharp, opinionated audio analysis tool that speaks the language of producers. Focused on electronic music (Drum & Bass, Techno, House) with genre-aware insights.

Features

Available Now (v0.1.0)

  • 📂 Audio Loading: WAV, FLAC, MP3, OGG, AIFF support
  • 🔄 Format Conversion: Automatic mono/stereo conversion
  • Resampling: Convert to any target sample rate
  • 🛡️ Error Handling: Robust error messages for common issues

Coming Soon

  • 🎚️ LUFS Metering: EBU R128 loudness with platform-specific targets
  • 🎵 BPM & Key Detection: Genre-aware tempo and key analysis with Camelot notation
  • 📊 Spectral Analysis: Frequency band breakdown for mixing decisions
  • 🔄 A/B Comparison: Compare your mix against professional references
  • 🎯 Smart Suggestions: Actionable feedback based on genre best practices

Installation

# From PyPI
pip install mixref

# Or with uv
uv pip install mixref

System Requirements

  • Python: 3.12 or 3.13
  • Platforms: Linux, macOS, Windows

⚠️ Known Issue: Python 3.13 on Windows is not currently supported due to numpy/librosa compatibility issues. Windows users should use Python 3.12. This limitation does not affect Linux or macOS.

Quick Start

from mixref.audio import load_audio

# Load an audio file
audio, sample_rate = load_audio("your_track.wav")

# With options
audio, sr = load_audio(
    "track.wav",
    channel_mode="stereo",  # Force stereo output
    sample_rate=44100       # Resample to 44.1kHz
)

CLI Usage

# Check version
mixref --version

# Get help
mixref --help

# Coming soon: Analysis commands
# mixref analyze my_track.wav --genre dnb
# mixref compare my_mix.wav reference.wav

Documentation

Full documentation is available at caparrini.github.io/mixref

Development

# Clone and setup
git clone https://github.com/caparrini/mixref.git
cd mixref
uv sync --all-extras

# Run tests
uv run pytest

# Type check
uv run mypy src/

# Lint and format
uv run ruff check src/
uv run ruff format src/

# Build docs
cd docs && uv run sphinx-build -b html source build/html

See CONTRIBUTING.md for detailed development guidelines.

CI/CD

This project uses GitHub Actions for continuous integration:

  • Tests: Python 3.12-3.13 on Ubuntu, macOS, Windows
  • 📚 Docs: Auto-deployed to GitHub Pages
  • 🔍 Quality: Linting, type checking, coverage (88%+)
  • 📦 Publish: Automated PyPI releases
  • 📊 Coverage: Tracked on Codecov

See .github/CICD_SETUP.md for CI/CD configuration details.

Links

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mixref-0.2.0.tar.gz (147.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mixref-0.2.0-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file mixref-0.2.0.tar.gz.

File metadata

  • Download URL: mixref-0.2.0.tar.gz
  • Upload date:
  • Size: 147.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mixref-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e23557afa903c52c43c3ecd0fa6ed6be55f34e5f3c3f3312dfc61ebbce4d3e72
MD5 80fbca8d405767a2b73c180ad5b32be5
BLAKE2b-256 db71826fb00a3343eb926c63fbbf6d5e2c27bf32bff2c45d099324d10a74a066

See more details on using hashes here.

Provenance

The following attestation bundles were made for mixref-0.2.0.tar.gz:

Publisher: publish.yml on Caparrini/mixref

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mixref-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: mixref-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mixref-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39eba66fd80b771af2c202ea40840c13f43a164ea2880e2711475df6f09466a4
MD5 e7d13a8e8f9819201b211b8d85b8fa34
BLAKE2b-256 e1cbf16ece90e1cb8d7ffa1a33f43f6fa4f9d42417c456121ffe13aa75e738c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mixref-0.2.0-py3-none-any.whl:

Publisher: publish.yml on Caparrini/mixref

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page