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