Skip to content
/ kani Public

cross-platform music player with configurable audio processor

License

Notifications You must be signed in to change notification settings

ebiiim/kani

Repository files navigation

kani🦀

"kani" means club in Japanese

Toy audio processor I made in my holidays for fun :D

docs/demo.gif

Design

    Input          Configurable Audio Processor          Output
┌───────────┐      ┌──────┬──────┬──────┬──────┐      ┌───────────┐
│           │ L ch │      │      │      │      │ L ch │           │
│           │  ┌──►│  LPF │  EQ  │  EQ  │      ├──┐   │           │
│           │  │   │      │      │      │ Cross│  │   │           │
│  Line In  ├──┤   ├──────┼──────┼──────┤ feed │  ├──►│ Line Out  │
│           │  │   │      │      │      │      │  │   │           │
│           │  └──►│  LPF │  EQ  │ None │      ├──┘   │           │
│           │ R ch │      │      │      │      │ R ch │           │
└───────────┘      └──────┴──────┴──────┴──────┘      └───────────┘

Features

  • DSP
    • Volume
    • Parametric Equalizer (Biquad Filter)
      • Low Pass / High Pass / Peak EQ / High Shelf / Low Shelf
    • Delay
    • Crossfeed (just might work)
    • Vocal Remover (just might work)
    • Convolver (super slow non-FFT implementation)
    • FFT
    • Normalizer (ajusts volume when detects signal > 1.0)
  • Input / Output
    • Audio Interfaces (using PortAudio, ~200ms latency)
    • Files (currently 2ch 16bit WAVE only)
    • Pipe
    • Spotify Connect (using librespot & pipe)
    • Resampling
      • Cool interpolation instead of copy and paste
  • User Interfaces
    • CLI
      • with cool RMS meter🥰
    • GUI
    • Config (Import / Export)
      • Update DSP config during playback
  • Supported Platforms (should work on same platforms as PortAudio)
    • Linux
      • ARMv7
    • macOS
    • Windows
      • ASIO

Build

Prerequisites

PortAudio

# Linux
sudo apt install portaudio19-dev
# macOS
brew install portaudio
# Windows
.\vcpkg install portaudio

librespot

# Linux only
sudo apt-get install build-essential libasound2-dev
# All platforms
cargo install librespot

Run

git clone https://github.com/ebiiim/kani && cd kani
cp ~/.cargo/bin/librespot{,.exe} .
cargo run --release

About

cross-platform music player with configurable audio processor

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages