Skip to content

hwpplayers/SPARK

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SPARK: Signal Processing Algorithms, Routines, and Kernels

SPARK is a lightweight DSP library that combines high-level math in Python with SIMD-optimized C kernels. It’s designed for developers who need real-time speed without the overhead of heavy scientific libraries.

⚠️ Work in progress: SPARK is still in early alpha. APIs may change.

Why SPARK?

  • Prototype DSP algorithms quickly in Python.
  • Run them at near-native speed with optimized C backends.
  • Bridge research code and production kernels without rewriting everything.

Key Features

  • High Performance: SIMD-optimized C implementations for speed and memory efficiency.
  • Pythonic API: Simple, intuitive bindings for everyday use.
  • Lightweight: Minimal dependencies—easy to embed in larger projects.
  • Cross-Platform: Linux and macOS supported out of the box.
  • Modern Tooling: Meson + meson-python build system for reliable integration.

Installation

Requirements:

  • Python ≥ 3.10
  • C compiler (GCC or Clang)
  • meson + ninja

Early releases will be published soon. For now, build from source.

Developer Setup

# 1. Clone the repository
git clone https://github.com/Colahall/SPARK.git
cd SPARK

# 2. Create a virtual environment
uv venv
source .venv/bin/activate

# 3. Install in editable mode with test deps
uv pip install -e ".[test]" --no-build-isolation

License

  • Python package (spark): GPL-3.0-or-later
  • C core (libspark): MIT License

This dual-licensing model ensures the core C kernels can be embedded widely, while the Python package remains open under GPL.

Roadmap

  • SIMD-optimized EQ and filter kernels
  • Cross-platform CI and packaging
  • Expanded DSP primitives (convolution, FFT wrappers, etc.)

About

SPARK: Signal Processing Algorithms Routines and Kernels

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 82.4%
  • Cython 15.0%
  • Meson 1.6%
  • Makefile 1.0%