clear-dsp
A lightweight JAX-optimized package of pure functions for digital signal processing.
clear-dsp provides a clean, functional, and high-performance set of DSP primitives built on JAX. Every function is pure, JIT-compatible, and designed for composition, autodiff, and acceleration on CPU, GPU, or TPU.
Design Principles
- Pure functions only — no classes, no mutable state, no side effects
- JAX-native — fully compatible with
jax.jit,jax.vmap,jax.grad, andjax.pmap - Lightweight — minimal dependencies (just JAX)
- Composable — small, focused building blocks that combine cleanly
- Type-safe — full type annotations and mypy-friendly
Installation
pip install clear-dsp
Or for development:
git clone https://github.com/yourusername/clear-dsp.git
cd clear-dsp
pip install -e ".[dev]"
Quick Start
import jax.numpy as jnp
from clear_dsp import filters, spectral
# Example: simple low-pass FIR filter (placeholder API)
# signal = jnp.sin(jnp.linspace(0, 10 * jnp.pi, 1000))
# filtered = filters.fir_lowpass(signal, cutoff=0.1, num_taps=51)
Note: The API is under active development. Check the source and tests for currently implemented functions.
Project Structure
clear-dsp/
├── src/
│ └── clear_dsp/
│ ├── __init__.py
│ ├── filters.py # FIR/IIR filters, windowing
│ ├── spectral.py # FFT-related, spectrograms, STFT
│ ├── windows.py # Window functions
│ └── ...
├── tests/
├── pyproject.toml
└── README.md
Development
# Install with development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Lint
ruff check src tests
# Type check
mypy src
Roadmap (initial ideas)
- Window functions (Hann, Hamming, Blackman, Kaiser, etc.)
- FIR filter design and application
- Basic IIR filters (biquads)
- STFT / ISTFT
- Spectral analysis helpers
- Convolution and correlation
- Resampling
- Envelope detection / Hilbert transform
- Signal analysis
Contributions and suggestions are welcome!
License
MIT License — see LICENSE.
Metadata
Release files for clear-dsp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| clear_dsp-0.1.0.tar.gz | 4.6 kB | Without provenance | Details for clear_dsp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| clear_dsp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for clear_dsp-0.1.0-py3-none-any.whl |
Total release size: 9.3 kB
Release files / clear_dsp-0.1.0.tar.gz
| Download URL | clear_dsp-0.1.0.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe007837d12df99de2f440efd23069a7de3f4d0d7fc2b36c9f4dad6b5afa9584
|
|
BLAKE2b-256 checksum How to use checksums |
732cf85b4581c5b7b27139bc6f5a6176fb91f25da9c9c3c3bb1a1d362abb0b89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|
Release files / clear_dsp-0.1.0-py3-none-any.whl
| Download URL | clear_dsp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ab3abf576d3a555e5c089ecedbcd0198d94c9530ab7176acddc7ba51d1199186
|
|
BLAKE2b-256 checksum How to use checksums |
26d39caefe659c8158abfac3abe4fabc6bb0a3b6aea2b62941f1f92675311dd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|
Security for clear-dsp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.