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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

58b832b Β· Dec 14, 2021
Aug 20, 2021
Aug 16, 2021
Aug 23, 2021
Aug 23, 2021
Aug 23, 2021
Aug 8, 2021
Aug 10, 2021
Dec 14, 2021
Aug 19, 2021
Aug 14, 2021
Aug 14, 2021
Aug 14, 2021
Aug 6, 2021
Dec 14, 2021
Aug 23, 2021

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