3 releases
| 0.1.2 | Sep 29, 2025 |
|---|---|
| 0.1.1 | Sep 29, 2025 |
| 0.1.0 | Sep 27, 2025 |
#481 in Audio
53 downloads per month
38KB
583 lines
Veils: Rust STFT Implementation
This repository contains an implementation of the stripped-down scipy.signal.ShortTimeFFT class in Python and Rust, with verification of ~1:1 accuracy between the implementations.
Files
Core Implementations
python/standalone_stft.py- Python STFT reference implementationsrc/lib.rs- Rust STFT implementationsrc/bin/shared_data_test.rs- Rust test binary for pipeline verification
Test Scripts (Local Development)
scripts/run_code_quality_checks.sh- Fast quality checks (formatting + clippy) → matches CIcode-qualityjobscripts/run_comprehensive_tests.sh- Full test suite (build + tests + docs + unified STFT tests) → matches CIcomprehensive-testjobscripts/run_crate_tests.sh- Publishing readiness (clean env + publish dry-run) → matches CIpublish-checkjobscripts/run_final_comparison.sh- Python-Rust compatibility (1:1 STFT coefficient and reconstruction verification)
Docker Infrastructure
docker/code_quality.Dockerfile- Base Rust environment with fmt/clippy for quality checksdocker/unified_test.Dockerfile- Unified comprehensive STFT testing containerdocker/python_rust_comparison.Dockerfile- Python-Rust compatibility testing containerdocker/create_test.Dockerfile- Clean environment for crate publishing testspython/final_comparison.py- Python script for comprehensive Python-Rust comparison
Local Testing Scripts → CI Jobs Mapping
| Local Script | CI Job | Purpose |
|---|---|---|
scripts/run_code_quality_checks.sh |
code-quality |
Format + lint checks |
scripts/run_comprehensive_tests.sh |
comprehensive-test |
Build + all tests + docs + unified STFT tests |
scripts/run_crate_tests.sh |
publish-check |
Clean env + publish dry-run |
scripts/run_final_comparison.sh |
python-rust-comparison |
Python-Rust 1:1 compatibility verification |
Usage
Local Development Testing
Use docker and do small incremental changes; run test scripts to pinpoint and fix issues, or when working on new features.
# Quick quality check (matches CI code-quality job)
bash scripts/run_code_quality_checks.sh
# Full test suite (matches CI comprehensive testing)
bash scripts/run_comprehensive_tests.sh
# Publishing readiness (matches CI publish check)
bash scripts/run_crate_tests.sh
# Python-Rust compatibility verification (matches CI python-rust-comparison job)
bash scripts/run_final_comparison.sh
The scripts/run_final_comparison.sh script:
- Builds Python-Rust comparison Docker container
- Runs comprehensive 1:1 compatibility tests between Python and Rust implementations
- Verifies perfect reconstruction and coefficient accuracy across multiple signal types
- Generates detailed comparison results in
final_comparison_results.json
Manual Docker Pipeline (Alternative)
# 1. Build and run Python-Rust comparison
docker build -f docker/python_rust_comparison.Dockerfile -t veils-comparison .
docker run --rm -v $(pwd):/workspace -w /workspace veils-comparison
# 2. Build and run comprehensive tests
docker build -f docker/unified_test.Dockerfile -t veils-unified-test .
docker run --rm -v $(pwd)/comparison_results:/workspace/comparison_results veils-unified-test
# 3. Build and run crate tests
docker build -f docker/create_test.Dockerfile -t veils-crate-test .
docker run --rm veils-crate-test
Dependencies
~4.5MB
~85K SLoC